class N2NBuf[T] extends SharedChan[T]
A general-purpose shared buffered channel, bounded by size
if it is positive,
and unbounded otherwise.
The buffer can be shared by any number of readers and writers.
It closes completely when closeIn
has been invoked readers
times,
or closeOut
has been invoked writers
times and
the buffer has been emptied.
If either writers
or readers
is non-positive, then the channel can be closed an unbounded
number of times in the associated direction.
There is no attempt to ensure fairness between sharing writers or sharing readers.
- T
type of value transmitted by the buffer
- Alphabetic
- By Inheritance
- N2NBuf
- SharedChan
- SharedInPort
- SharedOutPort
- Chan
- Debuggable
- Named
- OutPort
- InPort
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
N2NBuf(size: Int, writers: Int, readers: Int, name_: String)
- size
buffer is bounded by
size
if it is strictly positive, else unbounded- writers
expected number of readers
- readers
expected number of writers
- name_
name of the buffer (for 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
Block until a value t is available for input, then return
f(
t)
-- equivalent tof(?())
. -
def
?(): T
Block until a value is available for input, then read and return it.
-
def
??[U](f: (T) ⇒ U): U
Block until a value t is available for input, then return
f(
t)
.Block until a value t is available for input, then return
f(
t)
. If the inport is provided by a synchronized channel then synchronisation with the termination of the sender's!
is at the termination of the computation off(
t)
(this is sometimes called an extended rendezvous). -
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
-
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
Current state of this port: for alternation implementations
-
def
isEmpty: Boolean
- Annotations
- @inline()
-
def
isFull: Boolean
- Annotations
- @inline()
-
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
Current state of this port: for alternation implementations
-
def
readBefore(nsWait: basis.Nanoseconds): Option[T]
Block until the earlier of the following events happens:
-
val
reads: AtomicLong
Count oof 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 the current state of this object: default uses
toString
Show the current state of this object: default uses
toString
- Definition Classes
- N2NBuf → 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(nsWait: Long)(value: T): Boolean
Output
value
to the port's channel beforensWait
has elapsed, and return true; or return false -
val
writes: AtomicLong
Count oof the number of finished reads (writes)