Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Update `Fiber::Scheduler` documentation. (#6562) | Samuel Williams | 2022-10-15 | 1 | -1/+309 |
| | |||||
* | Introduce `Fiber::Scheduler#io_select` hook for non-blocking `IO.select`. ↵ | Samuel Williams | 2022-10-15 | 1 | -0/+21 |
| | | | | (#6559) | ||||
* | Improvements to IO::Buffer implementation and documentation. (#6525) | Samuel Williams | 2022-10-12 | 1 | -14/+14 |
| | |||||
* | Add IO#timeout attribute and use it for blocking IO operations. (#5653) | Samuel Williams | 2022-10-07 | 1 | -2/+2 |
| | |||||
* | [Bug #5317] Use `rb_off_t` instead of `off_t` | Nobuyoshi Nakada | 2022-09-08 | 1 | -2/+2 |
| | | | | Get rid of the conflict with system-provided small `off_t`. | ||||
* | Add fiber scheduler hooks for `pread`/`pwrite`, and add support to `IO::Buffer`. | Samuel Williams | 2021-12-23 | 1 | -2/+25 |
| | |||||
* | Rename IMMUTABLE to READONLY. | Samuel Williams | 2021-12-21 | 1 | -1/+1 |
| | |||||
* | Improve IO::Buffer resize and introduce ownership transfer. | Samuel Williams | 2021-12-20 | 1 | -0/+2 |
| | |||||
* | IO::Buffer for scheduler interface. | Samuel Williams | 2021-11-10 | 1 | -7/+42 |
| | |||||
* | Add gvl and fiber assertions to scheduler interface to catch invalid usage. | Samuel Williams | 2021-09-20 | 1 | -0/+9 |
| | |||||
* | Add alternative optional hook for `scheduler_close` to allow public usage of ↵ | Samuel Williams | 2021-09-20 | 1 | -3/+9 |
| | | | | close. | ||||
* | Adjust styles [ci skip] | Nobuyoshi Nakada | 2021-06-17 | 1 | -1/+2 |
| | | | | | | | | | * --braces-after-func-def-line * --dont-cuddle-else * --procnames-start-lines * --space-after-for * --space-after-if * --space-after-while | ||||
* | Fixed method names in exception messages | Nobuyoshi Nakada | 2021-06-14 | 1 | -4/+4 |
| | | | | | These methods are not !-suffixed, and the messages were very confusing. | ||||
* | Wake up join list within thread EC context. (#4471) | Samuel Williams | 2021-06-14 | 1 | -0/+24 |
| | | | | | | | | | | | | | | | * Wake up join list within thread EC context. * Consume items from join list so that they are not re-executed. If `rb_fiber_scheduler_unblock` raises an exception, it can result in a segfault if `rb_threadptr_join_list_wakeup` is not within a valid EC. This change moves `rb_threadptr_join_list_wakeup` into the thread's top level EC which initially caused an infinite loop because on exception will retry. We explicitly remove items from the thread's join list to avoid this situation. * Verify the required scheduler interface. * Test several scheduler hooks methods with broken `unblock` implementation. | ||||
* | Add scheduler hook `Addrinfo.getaddrinfo`. (#4375) | Samuel Williams | 2021-06-14 | 1 | -0/+14 |
| | | | Co-authored-by: Bruno Sutic <code@brunosutic.com> | ||||
* | Disable public interface for now. | Samuel Williams | 2021-03-30 | 1 | -12/+14 |
| | |||||
* | Update method name and add documentation. | Samuel Williams | 2021-03-30 | 1 | -6/+7 |
| | |||||
* | Fix native implementation. | Samuel Williams | 2021-03-30 | 1 | -2/+11 |
| | | | | | # Conflicts: # scheduler.c | ||||
* | Fixed a compilation error | Nobuyoshi Nakada | 2021-03-30 | 1 | -1/+1 |
| | |||||
* | Prefer `rb_check_funcall`. | Samuel Williams | 2021-03-30 | 1 | -1/+1 |
| | |||||
* | Add hook for `Timeout.timeout`. | Samuel Williams | 2021-03-30 | 1 | -0/+8 |
| | |||||
* | strip trailing spaces [ci skip] | Nobuyoshi Nakada | 2021-02-09 | 1 | -2/+2 |
| | |||||
* | Expose scheduler as public interface & bug fixes. (#3945) | Samuel Williams | 2021-02-09 | 1 | -45/+39 |
| | | | | | | | | | * 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. | ||||
* | Add support for non-blocking `Process.wait`. | Samuel Williams | 2020-12-09 | 1 | -0/+14 |
| | |||||
* | Protoized old pre-ANSI K&R style definitions | Nobuyoshi Nakada | 2020-12-05 | 1 | -2/+2 |
| | |||||
* | Rename to `Fiber#set_scheduler`. | Samuel Williams | 2020-11-07 | 1 | -0/+49 |
| | |||||
* | Added a fallback return | Nobuyoshi Nakada | 2020-10-01 | 1 | -0/+2 |
| | |||||
* | break around function definition [ci skip] | Nobuyoshi Nakada | 2020-10-01 | 1 | -13/+26 |
| | |||||
* | Don't call `Scheduler#close` if it doesn't exist. | Samuel Williams | 2020-10-01 | 1 | -1/+3 |
| | |||||
* | Make `Thread#join` non-blocking. | Samuel Williams | 2020-09-21 | 1 | -2/+2 |
| | |||||
* | When setting current thread scheduler to nil, invoke `#close`. | Samuel Williams | 2020-09-21 | 1 | -2/+15 |
| | |||||
* | Rename scheduler.{mutex_lock,mutex_unlock} to {block,unblock} | Benoit Daloze | 2020-09-17 | 1 | -8/+8 |
| | | | | * Move #kernel_sleep next to #block as it is similar | ||||
* | Make Mutex per-Fiber instead of per-Thread | Benoit Daloze | 2020-09-14 | 1 | -0/+14 |
| | | | | | | | | | * 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] | ||||
* | Add support for hooking `IO#read`. | Samuel Williams | 2020-09-14 | 1 | -4/+14 |
| | |||||
* | Standardised scheduler interface. | Samuel Williams | 2020-09-14 | 1 | -0/+71 |