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 process
    Definition Classes
    threadcso
  • CSOExecutor
  • CSOThreads
  • PROC
  • ParSyntax
  • PooledCSOExecutor
  • Process
  • SizePooledCSOExecutor
  • Stopped
  • ThreadPooledCSOExecutor
o

io.threadcso.process

CSOThreads

object CSOThreads

This is the module in which the characteristics of the pooling of threads used by threaded-CSO are determined.

To be specific, the following jdk runtime properties determine thread-pooling characteristics, and can be set either from a program that uses CSO (before any CSO process construct is executed) or (as we usually expect) by setting the appropriate jdk property from the (usually scala) command line that runs the program.

  • io.threadcso.pool.SECS the time before pooled threads are deemed idle (ADAPTIVE and SIZED pools only). See CSOThreads.poolSECS
  • io.threadcso.pool.KIND the kind of the pool: ADAPTIVE, SIZED, CACHED, UNPOOLED. See CSOThreads.poolKIND
  • io.threadcso.pool.REPORT report pool performance on program exit. See CSOThreads.poolREPORT

The following runtime properties have specialized interpretations.

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

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 equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. val executor: CSOExecutor

    The CSOExecutor that is being used in this program.

    The CSOExecutor that is being used in this program. Its kind is fixed by poolKind.

  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def getActive: Seq[Thread]

    PRE: size of CSO thread pools (or count of CSO threads) is not increasing POST: returns the active CSO threads

  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  17. val poolKIND: String

    Setting a jdk property with -Dio.threadcso.pool.KIND=kind what kind of thread pooling to use:

    Setting a jdk property with -Dio.threadcso.pool.KIND=kind what kind of thread pooling to use:

    • ADAPTIVE -- is the default. Retires idle threads after poolSECS. See SizePooledCSOExecutor.
    • SIZED -- runs several ADAPTIVE pools: each with threads of a similar stack size. See SizePooledCSOExecutor.
    • CACHED -- a pool that never retires idle threads.
    • UNPOOLED -- makes a new thread every time a PROC is run. Stacksize is as specified by the PROC.

    Default is ADAPTIVE

  18. val poolMAX: Int

    Setting a jdk property with -Dio.threadcso.pool.MAX=number specifies an upper bound on the number of threads to be kept in ADAPTIVE or SIZED pools.

    Setting a jdk property with -Dio.threadcso.pool.MAX=number specifies an upper bound on the number of threads to be kept in ADAPTIVE or SIZED pools. Leave it at its default value unless you have understood the documentation of ThreadPoolExecutor.

  19. val poolMIN: Int

    Setting a jdk property with -Dio.threadcso.pool.MIN=number specifies a lower bound on the number of threads to be kept in ADAPTIVE or SIZED pools.

    Setting a jdk property with -Dio.threadcso.pool.MIN=number specifies a lower bound on the number of threads to be kept in ADAPTIVE or SIZED pools. Leave it at its default value unless you have understood the documentation of ThreadPoolExecutor.

  20. val poolREPORT: Boolean

    Setting a jdk property with -Dio.threadcso.pool.REPORT=true causes adaptive pools to report on their activity when ox.CSO.exit is called, and/or the pool(s) are shut down.

  21. val poolSECS: Long

    Setting a jdk property with -Dio.threadcso.pool.SECS=secs specifies that idling pooled threads expire after secs idling.

    Setting a jdk property with -Dio.threadcso.pool.SECS=secs specifies that idling pooled threads expire after secs idling. Default same as poolSecs.

  22. val poolSTACKSIZE: Long

    Life's too short to construct lovely prose.

    Life's too short to construct lovely prose. This is how to recommend the stack sizes of threads made with CACHED or ADAPTIVE pooling. Set the appropriate jdk property/ies with -D<propname>=...

    val G = 1024*1024*1024*getPropElse("io.threadcso.pool.G", _.toLong)(0)
    val M =      1024*1024*getPropElse("io.threadcso.pool.M", _.toLong)(0)
    val K =           1024*getPropElse("io.threadcso.pool.K", _.toLong)(0)
    G+M+K
  23. val poolSecs: Long

    Setting a jdk property with -Dio.threadcso.pool=secs specifies that idling pooled threads expire after secs idling.

    Setting a jdk property with -Dio.threadcso.pool=secs specifies that idling pooled threads expire after secs idling. (deprecated: default 4)

  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped