Scala Library Documentation
|
|
scala/util/Fluid.scala
]
class
Fluid[T](init : T)
extends
AnyRefvalue
method. New values can be
pushed using the withValue
method.
Values pushed via withValue
only
stay valid while the withValue
's
second argument, a parameterless closure,
executes. When the second argument finishes,
the fluid reverts to the previous value.
Usage of withValue
looks like this:
Each thread gets its own stack of bindings. When a new thread is created, the fluid gets a copy of the stack of bindings from the parent thread, and from then on the bindings for the new thread are independent of those for the original thread.someFluid.withValue(newValue) { // ... code called in here that calls value ... // ... will be given back the newValue ... }
Method Summary | |
override def
|
toString : String |
def
|
value
: T
Retrieve the current value
|
def
|
value_=
(newval : T) : Unit
Change the currently bound value, discarding the old value.
Usually withValue() gives better semantics.
|
def
|
withValue
[S](newval : T)(thunk : => S) : S
Set the value of the fluid while executing the specified
thunk.
|
Methods inherited from AnyRef | |
getClass, hashCode, equals, clone, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized |
Methods inherited from Any | |
==, !=, isInstanceOf, asInstanceOf |
Method Details |
def
value : T
newval -
The value to which to set the fluidthunk -
The code to evaluate under the new settingoverride
def
toString : String
Scala Library Documentation
|
|