packages feed

spade-0.2.0.0: samples/concurrency.spd

proc thread1(r)
  for i = 1 to 10000
    let rv = readref(r)
    writeref(r, (rv + 1))
  endfor
endproc
loop
let ref = newref(0)
let t = startthread(thread1, ref)
let t2 = startthread(thread1, ref)
let t3 = startthread(thread1, ref)
let t4 = startthread(thread1, ref)


await(t)
await(t2)
await(t3)
await(t4)

println(readref(ref))
endloop
waitforkey()