Top Level Namespace
Defined Under Namespace
Modules: Enumerable, Sink Classes: Array, Consumer, CoroutineError, Hash, IO, LazyEnumerator, Method, Object, Proc, String, Symbol, Transformer
Constant Summary collapse
- Multicast =
convenience alias for Sink::Multicast (this is not defined when requiring just coroutines/base)
Sink::Multicast
Instance Method Summary collapse
-
#await ⇒ Object
:call-seq: await -> obj.
Instance Method Details
#await ⇒ Object
:call-seq:
await -> obj
Evaluates to the next input value from the associated consumption context. In order to create a consumption context, you have to use Object#consum_for or Object#trans_for on the method calling await.
The behavior of await is undefined if the method using it is called without being wrapped by consum_for or trans_for. It should be an error to do so, as it is an error to use yield without an associated block; however, since await is not a language primitive (like yield), it is not always possible to enforce this. This is likely to change in a future version if a better solution can be found.
93 94 95 96 97 |
# File 'lib/coroutines.rb', line 93 def await yielder = Fiber.current.instance_variable_get(:@yielder) raise CoroutineError, "you can't call a consumer" if yielder.nil? yielder.await end |