summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/rouge-4.7.0/lib/rouge/demos/tulip
blob: 8c18ccf48f1c3a3bc10a769ee6eb2621f7839eeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
@module ref

ref value = Ref (spawn [ ! => loop value ])

loop value = receive [
  .set new-value => loop new-value
  p, id, .get => { send p (id, value); loop value }
]

@object Ref pid [
  set val = .set val > send pid
  get! = .get > send-wait pid
]