summaryrefslogtreecommitdiff
path: root/docs/examples/jolib/parallelOr.scala
diff options
context:
space:
mode:
authorAntonio Cunei <antonio.cunei@epfl.ch>2011-11-07 09:55:10 +0000
committerAntonio Cunei <antonio.cunei@epfl.ch>2011-11-07 09:55:10 +0000
commitda929738ccfcf21cc3d8fdb9ce7734e59c6847f0 (patch)
tree90e335ca1fb60fde22ad345df72aeb0f08aace22 /docs/examples/jolib/parallelOr.scala
parentc4e1b28cf79f73e4f8972263efb85ee879c39ebd (diff)
downloadscala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.tar.gz
scala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.tar.bz2
scala-da929738ccfcf21cc3d8fdb9ce7734e59c6847f0.zip
Backport of r25948
Diffstat (limited to 'docs/examples/jolib/parallelOr.scala')
-rw-r--r--docs/examples/jolib/parallelOr.scala14
1 files changed, 7 insertions, 7 deletions
diff --git a/docs/examples/jolib/parallelOr.scala b/docs/examples/jolib/parallelOr.scala
index 4c4a852c4a..72d282bee3 100644
--- a/docs/examples/jolib/parallelOr.scala
+++ b/docs/examples/jolib/parallelOr.scala
@@ -13,27 +13,27 @@ import concurrent.SyncVar;
/** Implementation in the join-calculus of a parallel OR. */
object or extends Join {
-
+
object res extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] };
object res1 extends Asynchr(this) { case class C(b: boolean); }
object res2 extends Asynchr(this) { case class C(b: boolean); }
object res1False extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] };
object res2False extends Synchr[boolean](this) { case class C() extends SyncVar[boolean] };
-
+
rules(
Pair(List(res, res1), { case List(r @ res.C(), res1.C(b)) =>
if (b) r.set(b) else r.set(res1False(res1False.C())) }),
-
+
Pair(List(res, res2), { case List(r @ res.C(), res2.C(b)) =>
if (b) r.set(b) else r.set(res2False(res2False.C())) }),
-
+
Pair(List(res1False, res2), { case List(r @ res1False.C(), res2.C(b)) =>
r.set(b) }),
-
+
Pair(List(res2False, res1), { case List(r @ res2False.C(), res1.C(b)) =>
r.set(b) })
);
-
+
def apply(b1: => boolean, b2: => boolean): boolean = {
concurrent.ops.spawn(res1(res1.C(b1)));
concurrent.ops.spawn(res2(res2.C(b2)));
@@ -42,7 +42,7 @@ object or extends Join {
}
*/
object parallelOr {
-
+
def main(args: Array[String]): unit = {
def loop: boolean = { while (true) {}; true };
/*