45 lines
866 B
Text
45 lines
866 B
Text
|
TITLE:: FlowVar
|
||
|
summary:: A place holder, which when accessed pauses a thread until the place holder has a value
|
||
|
categories::Scheduling
|
||
|
related:: Classes/Ref, Classes/Thunk, Classes/Condition, Classes/Routine
|
||
|
|
||
|
DESCRIPTION::
|
||
|
|
||
|
|
||
|
code::
|
||
|
(
|
||
|
a = FlowVar.new;
|
||
|
fork {
|
||
|
"I am waiting, please enter a value ...".postln;
|
||
|
a.value.postln;
|
||
|
"...... ok, done.".postln;
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// later, set the value. Then we can continue ...
|
||
|
a.value = 2;
|
||
|
::
|
||
|
|
||
|
|
||
|
CLASSMETHODS::
|
||
|
|
||
|
METHOD:: new
|
||
|
Return a new instance,
|
||
|
|
||
|
ARGUMENT:: inVal
|
||
|
If a value is given here, the FlowVar will not block execution.
|
||
|
|
||
|
|
||
|
INSTANCEMETHODS::
|
||
|
|
||
|
|
||
|
METHOD:: value
|
||
|
Set the value bound to the FlowVar.
|
||
|
|
||
|
The getter returns the value bound to the FlowVar. If the value is not yet available, hold execution (this requires the method to be called from within a link::Classes/Routine:: or similar thread.).
|
||
|
|
||
|
|
||
|
ARGUMENT:: inVal
|
||
|
Any object.
|
||
|
|