path: root/internal/scheduler.h
AgeCommit message (Collapse)Author
2021-02-09Expose scheduler as public interface & bug fixes. (#3945)Samuel Williams
* Rename `rb_scheduler` to `rb_fiber_scheduler`. * Use public interface if available. * Use `rb_check_funcall` where possible. * Don't use `unblock` unless the fiber was non-blocking. Notes: Merged-By: ioquatix <>
2020-12-09Add support for non-blocking `Process.wait`.Samuel Williams
Notes: Merged:
2020-11-07Rename to `Fiber#set_scheduler`.Samuel Williams
Notes: Merged:
2020-09-21Make `Thread#join` non-blocking.Samuel Williams
Notes: Merged:
2020-09-21When setting current thread scheduler to nil, invoke `#close`.Samuel Williams
Notes: Merged:
2020-09-17Rename scheduler.{mutex_lock,mutex_unlock} to {block,unblock}Benoit Daloze
* Move #kernel_sleep next to #block as it is similar
2020-09-14Make Mutex per-Fiber instead of per-ThreadBenoit Daloze
* Enables Mutex to be used as synchronization between multiple Fibers of the same Thread. * With a Fiber scheduler we can yield to another Fiber on contended Mutex#lock instead of blocking the entire thread. * This also makes the behavior of Mutex consistent across CRuby, JRuby and TruffleRuby. * [Feature #16792] Notes: Merged:
2020-09-14Add support for hooking `IO#read`.Samuel Williams
Notes: Merged:
2020-09-14Standardised scheduler interface.Samuel Williams
Notes: Merged: