summaryrefslogtreecommitdiff
path: root/docs/examples/computeserver.scala
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/computeserver.scala')
-rw-r--r--docs/examples/computeserver.scala54
1 files changed, 0 insertions, 54 deletions
diff --git a/docs/examples/computeserver.scala b/docs/examples/computeserver.scala
deleted file mode 100644
index 788be284d1..0000000000
--- a/docs/examples/computeserver.scala
+++ /dev/null
@@ -1,54 +0,0 @@
-package examples
-
-import concurrent._, concurrent.ops._
-
-class ComputeServer(n: Int) {
-
- private trait Job {
- type t
- def task: t
- def ret(x: t): Unit
- }
-
- private val openJobs = new Channel[Job]()
-
- private def processor(i: Int) {
- while (true) {
- val job = openJobs.read
- println("read a job")
- job.ret(job.task)
- }
- }
-
- def future[a](p: => a): () => a = {
- val reply = new SyncVar[a]()
- openJobs.write{
- new Job {
- type t = a
- def task = p
- def ret(x: a) = reply.set(x)
- }
- }
- () => reply.get
- }
-
- //spawn(replicate(0, n) { processor })
- spawn((0 until n).par foreach { processor })
-}
-
-object computeserver extends App {
-
- def kill(delay: Int) = new java.util.Timer().schedule(
- new java.util.TimerTask {
- override def run() = {
- println("[killed]")
- sys exit 0
- }
- },
- delay) // in milliseconds
-
- val server = new ComputeServer(1)
- val f = server.future(42)
- println(f())
- kill(10000)
-}