Thread


Overview

A thread is a unit of concurrent execution. When a thread is created, it continues processing on the XVM until either it performs a read operation that blocks on input or when it explicitly calls yield. All XOCL values implement the yield operation. In both cases the thread is said to yield control. When a thread yields control, the XOS schedules another thread that is waiting. The scheduling algorithm aims to ensure that all waiting threads get scheduled providing that they yield.



Parents Element


Constructors



Attributes



Operations
asSeq():Seq(Thread) Returns all the threads in the system by chaining down the linked list of threads from the receiver.
id():IntegerNo Documentation Specified
kill():Element A thread can commit suicide by calling this operation on itself.
next():Thread Returns the thread that will be scheduled next.
sleep():Element Sets the live-status of the receiver to SLEEP. The receiver cannot be rescheduled until it has been woken up.
state():Integer Returns the live-status of the receiver.
stateString():String Returns the live-status of the receiver as a symbolic string.
toString():StringNo Documentation Specified
wake(result:Element):Element Changes the live-status of the receiver to be ACTIVE and therefore ready for rescheduling.
From Element: pprint, pprint, pprint, writeXMLFile, writeXMLFile, writeXML, lift, toSnapshot, toSnapshot, allHTMLEntries, allHTMLPackages, toHTML, writeHTML, writeHTML, writeHTMLAllEntries, writeHTMLAllPackages, writeHTMLIndex, writeHTMLOverview, yield, toString, systemId, setOf, send, save2, save, removeDaemon, removeDaemon, println, print, oclIsKindOf, oclIsTypeOf, noOperationFound, isTypeOf, isReallyKindOf, init, init, of, isKindOf, addTo, checkConstraints, copy, deleteRecursive, die, edit, equals, error, ferror, hashCode.