Packages

  • package root
    Definition Classes
    root
  • package io

    This is the documentation for the ThreadCSO Library.

    This is the documentation for the ThreadCSO Library. Notable packages include:

    Definition Classes
    root
  • package threadcso

    The standard threadCSO API.

    The standard threadCSO API. Most modules using CSO will need only the declaration:

    import io.threadcso._

    The present version of the ThreadCSO library API is 1.2Rr (for some number r)

    The revision number (Rr) will change if bugs are corrected but the code remains consistent with the previous API. Its minor version number will change if there is a correction to the code that breaks consistency with the previous API. Its major version will change if there is a substantial change in the semantics of an important CSO construct.

    August 2017: changes 1.1 => 1.2

    • renaming of very many internal classes and packages
    • basic channel implementations are more efficient, in some case much more so
    • alternation reliability improved
    • debugger registration of alternations is no longer needed
    • home-grown semaphores can specify which component they are part of: this makes interpreting a stack backtrace very much easier
    • there is a flexible logging system that is compatible with the debugger

    April 2016: changes 1.0 => 1.1

    • Extended rendezvous read operator is now ?? (was ?)
    • Extended rendezvous read event notation is now =??=> (was =?=>>)
    • The notation inport ? f is now equivalent to f(inport?()) This makes for a tidier layout when the function f is an explicit functional expression.

    Feb 1 2017: changes 1.1R1 => 1.1R2

    • Removed dependencies on deprecated Java->Scala functions: replaced with .asJava
    @author Bernard Sufrin, Oxford
    $Revision: 286 $
    $Date: 2017-11-18 17:41:30 +0000 (Sat, 18 Nov 2017) $
    Definition Classes
    io
  • package alternation
    Definition Classes
    threadcso
  • package event

    This package implements the syntax of the CSO alternation notations, and provides hooks for the semantics of that notation.

    This package implements the syntax of the CSO alternation notations, and provides hooks for the semantics of that notation.

    The body of an alternation specification consists of a sequence (possibly empty) of executable event specifications separated by | and possibly followed by:

    | after(timeout) ==> { ... }

    or

    | orelse ==> { ... }

    or

    | after(timeout) ==> { ... } |  orelse ==> { ... }

    An executable event specification takes one of the following forms:

    outport              =!=>  OutEvent
    (guard && outport)   =!=>  OutEvent
    inport               =?=>  InEvent
    (guard && inport)    =?=>  InEvent
    inport               =??=> InEvent     // extended rendezvous form
    (guard && inport)    =??=> InEvent     // extended rendezvous form

    Concessions to readability: a Chan expression may appear in place of a port expression.

    Events and their effects

    OutEvent form:                        Effect when triggered
    {expr}                                outport!expr
    {expr} ==> { command: Unit }          {outport!expr; command}
    InEvent form:                         Effect when triggered
    { bv => body: Unit }                  {val bv=inport?(); body }

    For an extended rendezvous InEvent the correspondence is

    { bv => body: Unit }                  { inport??({ bv => body}) }
    Definition Classes
    alternation
  • AfterDeadline
  • AfterEvent
  • Event
  • ExecutableEvent
  • ExecutableEventSyntax
  • InPortEvent
  • InPortEventExtended
  • InfixEventSyntax
  • NormalAlt
  • OrElseEvent
  • OutPortEvent
  • OutPortEventThen
  • orelse

class InPortEvent[+T] extends ExecutableEvent

Executable event corresponding to guard && port =?=> body

Linear Supertypes
ExecutableEvent, Serializable, Serializable, Product, Equals, ExecutableEventSyntax, Event, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InPortEvent
  2. ExecutableEvent
  3. Serializable
  4. Serializable
  5. Product
  6. Equals
  7. ExecutableEventSyntax
  8. Event
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new InPortEvent(guard: () ⇒ Boolean, port: InPort[T], body: (T) ⇒ Unit)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  8. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  9. def isFeasible: Boolean

    Is the associated guard true and the associated port open

    Is the associated guard true and the associated port open

    Definition Classes
    InPortEventExecutableEvent
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def isOpen: Boolean

    Is the associated port open

    Is the associated port open

    Definition Classes
    InPortEventExecutableEvent
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def normalize(): NormalAlt

    Recover the events, deadline, and alternative clauses ready for execution as the body of an alternation.

    Recover the events, deadline, and alternative clauses ready for execution as the body of an alternation.

    Definition Classes
    Event
  14. final def notify(): Unit
    Definition Classes
    AnyRef
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  16. def portState: PortState

    Return the current state of this event's port

    Return the current state of this event's port

    Definition Classes
    InPortEventExecutableEvent
  17. def register(alt: Runnable, theIndex: Int): PortState

    Register the given running alternation with this event's port and return the current state of the port

    Register the given running alternation with this event's port and return the current state of the port

    Definition Classes
    InPortEventExecutableEvent
  18. def run(): Unit

    Run the event

    Run the event

    Definition Classes
    InPortEventExecutableEvent
  19. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  20. def toNormalizedString: String
    Definition Classes
    Event
  21. def toString(): String
    Definition Classes
    InPortEventExecutableEvent → AnyRef → Any
  22. def unregister: PortState

    Unregister any running alternation from this event's port and return the current state of the port.

    Unregister any running alternation from this event's port and return the current state of the port.

    Definition Classes
    InPortEventExecutableEvent
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. def |(other: OrElseEvent): OrElseEvent
    Definition Classes
    ExecutableEventSyntax
  27. def |(other: AfterEvent): AfterEvent
    Definition Classes
    ExecutableEventSyntax
  28. def |(other: ExecutableEventSyntax): InfixEventSyntax
    Definition Classes
    ExecutableEventSyntax

Inherited from ExecutableEvent

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from ExecutableEventSyntax

Inherited from Event

Inherited from AnyRef

Inherited from Any

Ungrouped