Module: Kernel
- Defined in:
- lib/kernel/sync.rb,
lib/kernel/async.rb
Instance Method Summary collapse
-
#Async(*arguments, **options, &block) ⇒ Object
Run the given block of code in a task, asynchronously, creating a reactor if necessary.
-
#Sync(&block) ⇒ Object
Run the given block of code synchronously, but within a reactor if not already in one.
Instance Method Details
#Async(*arguments, **options, &block) ⇒ Object
Run the given block of code in a task, asynchronously, creating a reactor if necessary.
27 28 29 |
# File 'lib/kernel/async.rb', line 27 def Async(*arguments, **, &block) ::Async::Reactor.run(*arguments, **, &block) end |
#Sync(&block) ⇒ Object
Run the given block of code synchronously, but within a reactor if not already in one.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/kernel/sync.rb', line 27 def Sync(&block) if task = ::Async::Task.current? yield task else ::Async::Reactor.run( finished: ::Async::Condition.new, &block ).wait end end |