in scala.concurrent
object pilib

`object` pilib
  `extends` java.lang.Object
  `with` scala.ScalaObject

  Library for using Pi-calculus concurrent primitives in Scala. As an example, the definition of a two-place buffer using the `pilib` library looks like:

        def Buffer[a](put: Chan[a], get: Chan[a]): unit = {
          def B0: unit = choice ( put * { x => B1(x) } );
          def B1(x: a): unit = choice ( get(x) * B0, put * { y => B2(x, y) } )
          def B2(x: a, y: a): unit = choice ( get(x) * B1(y) )
          B0
        }

See Also:
  PiLib: A Hosted Language for Pi-Calculus Style Concurrency
Author:
  Vincent Cremet, Martin Odersky
Version:
  1.0

Class Summary
| `class` Chan [a] Name on which one can emit, receive or that can be emitted or received during a communication.
| `class` GP [a] Typed guarded process.
| `class` Product [a]
`abstract` | `class` Spawn Run several processes in parallel using the following syntax: `spawn < p1 | ... | pn >`
`case` | `class` Sum
| `class` UChan Untyped channel.
`case` | `class` UGP An untyped guarded process.

Constructor Summary
| `def` this

Val Summary
| `val` spawn : pilib.this.Spawn

Def Summary
| `def` choice [a] (s: pilib.this.GP[a]*) : a Pi-calculus non-deterministic choice.

Constructor Detail

`def` this

Val Detail

`val` spawn : pilib.this.Spawn

Def Detail

`def` choice [a](s: pilib.this.GP[a]*): a

  Pi-calculus non-deterministic choice.

Parameters:
  `s -` ...
Returns:
  ...