class OneOne[T] extends SyncChan[T]
A synchronized channel to be used by at most one reader and writer process simultaneously. There are dynamic checks for simultaneous multiple reads (writes), but they are are incomplete. They cannot reliably detect that multiple readers (writers) are running concurrently with a single writer (reader) that is fast enough to keep up with their read (write) rate.
The channel closes when either
or closeOut()
or closeIn()
is invoked.
close()
- T
the type of message transmitted by the channel
- Alphabetic
- By Inheritance
- OneOne
- SyncChan
- Chan
- Debuggable
- Named
- OutPort
- InPort
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
OneOne(name_: String)
- name_
the name of the channel, as reported by the debugger
Value Members
-
def
!(value: T): Unit
Output
value
to the port's channel. -
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
?[U](f: (T) ⇒ U): U
Ordinary rendezvous read & sync then compute
-
def
?(): T
Block until a value is available for input, then read and return it.
-
def
??[U](f: (T) ⇒ U): U
Extended rendezvous read & compute, then sync
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
canInput: Boolean
Returns
false
if no further input will be supplied by this port. -
def
canOutput: Boolean
Returns
false
if no further output can be accepted by this port. -
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
close(): Unit
Signal that the channel is to be closed forthwith
-
def
closeIn(): Unit
Signal that no further attempts will be made to input from the invoking thread: idempotent
-
def
closeOut(): Unit
Signal that no further values will be output from the invoking thread: idempotent
-
def
currentState: String
Capture (an approximation to) the current state for debugger components
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
finishedRW: String
Intelligible information about finished reads and writes
Intelligible information about finished reads and writes
- Annotations
- @elidable( FINEST )
-
def
finishedRead: Long
Increment count of finished reads
Increment count of finished reads
- Annotations
- @elidable( FINEST )
-
def
finishedWrite: Long
Increment count of finished writes
Increment count of finished writes
- Annotations
- @elidable( FINEST )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
getWaiting: Seq[Thread]
Return a sequence of the threads currently waiting for this object, if any.
Return a sequence of the threads currently waiting for this object, if any. Default is the empty sequence.
- Definition Classes
- Debuggable
-
def
hasState: Boolean
This object has a state worth showing right now: false if showState will do no output.
This object has a state worth showing right now: false if showState will do no output.
- Definition Classes
- Debuggable
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
inPortEvent(portState: PortState): Unit
The channel has just changed its state in a way that will affect
inPortState
The channel has just changed its state in a way that will affect
inPortState
- Definition Classes
- Chan
-
def
inPortState: PortState
READY if not closed and there's a writer waiting to sync (else CLOSED or UNKNOWN) (used only by alternation implementations)
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
key: StateKey
This object's key in the registry (if non-negative)
This object's key in the registry (if non-negative)
- Definition Classes
- Debuggable
-
def
name: String
Return the name of the object
Return the name of the object
- Definition Classes
- Named
-
def
nameGenerator: NameGenerator
Discover the name generator
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nothing: T
The null value for this port -- equivalent to
null.asInstanceOf[T]
.The null value for this port -- equivalent to
null.asInstanceOf[T]
. Useful to initialise variables that will in due course be assigned values by reading from the port.- Definition Classes
- InPort
- Annotations
- @inline()
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
outPortEvent(portState: PortState): Unit
The channel has just changed its state in a way that will affect
outPortState
The channel has just changed its state in a way that will affect
outPortState
- Definition Classes
- Chan
-
def
outPortState: PortState
READY if not closed and there's a reader waiting and last writer has already synced (else CLOSED or UNKNOWN) (used only by alternation implementations)
-
def
readBefore(timeoutNS: Long): Option[T]
Block until the earlier of the following events happens:
-
val
reads: AtomicLong
Count of the number of finished reads (writes)
-
def
register(): Unit
Register this object
Register this object
- Definition Classes
- Debuggable
-
def
setName(name: String): Unit
Set the name using the name generator
Set the name using the name generator
- Definition Classes
- Named
-
def
showState(out: PrintWriter): Unit
Show (an approximation to) the current state on
out
Show (an approximation to) the current state on
out
- Definition Classes
- OneOne → Debuggable
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def toString(): String
-
def
unregister(): Unit
Unregister this object
Unregister this object
- Definition Classes
- Debuggable
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withDebugger[T](condition: Boolean)(body: ⇒ T): T
Conditionally
register
this object with the debugger only for the duration of the evaluation ofbody
.Conditionally
register
this object with the debugger only for the duration of the evaluation ofbody
. To be used as a last resort for the exasperated CSO toolkit debugger.- Definition Classes
- Debuggable
-
def
withName(__name: String): Chan[T]
Set the name of this object and return it
Set the name of this object and return it
- Definition Classes
- Named
-
def
writeBefore(timeoutNS: Long)(value: T): Boolean
Output
value
to the port's channel beforensWait
has elapsed, and return true; or return false -
val
writes: AtomicLong
Count of the number of finished reads (writes)