3
import concurrent._, concurrent.ops._
5
class ComputeServer(n: Int) {
13
private val openJobs = new Channel[Job]()
15
private def processor(i: Int): Unit = {
17
val job = openJobs.read
23
def future[a](p: => a): () => a = {
24
val reply = new SyncVar[a]()
29
def ret(x: a) = reply.set(x)
35
spawn(replicate(0, n) { processor })
38
object computeserver extends Application {
40
def kill(delay: Int) = new java.util.Timer().schedule(
41
new java.util.TimerTask {
42
override def run() = {
47
delay) // in milliseconds
49
val server = new ComputeServer(1)
50
val f = server.future(42)