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:
  PiLib: A Hosted Language for Pi-Calculus Style Concurrency
author:
  Vincent Cremet, Martin Odersky

Constructor Summary
| `def` this

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 < p_1 | ... | p_n >
`case` | `class` Sum
| `class` UChan Untyped channel.
`case` | `class` UGP An untyped guarded process.

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

Constructor Detail

`def` this

Def Detail

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

  Pi-calculus non-deterministic choice.