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 debug
    Definition Classes
    threadcso
  • package REGISTRY

    This object serves as a registry for (live) objects that the debugger interface may be interested in.

    This object serves as a registry for (live) objects that the debugger interface may be interested in.

    Definition Classes
    debug
  • Debuggable
p

io.threadcso.debug

REGISTRY

package REGISTRY

This object serves as a registry for (live) objects that the debugger interface may be interested in.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. REGISTRY
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait Debuggable extends AnyRef

    Objects that wish to make themselves known to the debugger interface should incorporate this trait, and register themselves at construction time.

  2. type StateKey = Long

Value Members

  1. val NONEWAITING: Seq[Thread]
  2. def register(obj: Debuggable): StateKey

    Register obj

  3. val registered: TrieMap[StateKey, WeakReference[Debuggable]]
  4. def showThreads(out: PrintWriter, caption: String, threads: Seq[Thread]): Unit

    Utility to print captioned lists of (waiting) threads

  5. val stateKey: AtomicLong

    Atomic reference to the key that will be used to enter the next registered object in the registry.

  6. def waiting: TrieMap[Thread, List[Debuggable]]

    Return a mapping that maps each thread awaiting a registered object to the object it is awaiting.

    Return a mapping that maps each thread awaiting a registered object to the object it is awaiting. This mapping is used to interpret the states of waiting threads during a thread dump.

    To do

    When the threadcso components that use jdk.util.concurrent.LockSupport are commissioned this will become obsolete.

Inherited from AnyRef

Inherited from Any

Ungrouped