Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-12-23 | Add verbose nil in testing | Delton Ding | |
Notes: Merged: https://github.com/ruby/ruby/pull/3971 | |||
2020-12-23 | Enable `Fiber.current` and `Fiber#alive?` call inside ractor | Delton Ding | |
Notes: Merged: https://github.com/ruby/ruby/pull/3971 | |||
2020-12-09 | Add support for non-blocking `Process.wait`. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3853 | |||
2020-11-08 | Fix TestFiberMutex#test_condition_variable assertion | Benoit Daloze | |
* Now that it works correctly. | |||
2020-11-08 | Urgent notification pipe has same lifetime as scheduler. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3743 | |||
2020-11-08 | Defer `kernel_sleep` to `block` to avoid exiting the event loop when ↵ | Samuel Williams | |
duration is nil. Notes: Merged: https://github.com/ruby/ruby/pull/3743 | |||
2020-11-07 | Rename to `Fiber#set_scheduler`. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3742 | |||
2020-10-01 | Refined assertions for better failure messages | Nobuyoshi Nakada | |
2020-10-01 | strip trailing spaces [ci skip] | Nobuyoshi Nakada | |
2020-10-01 | Remove `Thread.scheduler` from public interface. | Samuel Williams | |
It's implementation is equivalent to: Thread.current.scheduler unless Thread.current.blocking? Notes: Merged: https://github.com/ruby/ruby/pull/3610 | |||
2020-10-01 | Raise an exception if the scheduler was already closed. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3612 | |||
2020-10-01 | Don't call `Scheduler#close` if it doesn't exist. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3612 | |||
2020-09-30 | Fix order of operations during `rb_ec_finalize`. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3605 | |||
2020-09-28 | Remove unnecessary executable bit [ci skip] | Kazuhiro NISHIYAMA | |
2020-09-24 | test/fiber/scheduler.rb: Prevent "instance variable @urgent not initialized" | Yusuke Endoh | |
2020-09-23 | strip trailing spaces [ci skip] | Nobuyoshi Nakada | |
2020-09-21 | Simplify the implementation of Scheduler#block | Benoit Daloze | |
* This shows block() with a timeout is similar to #kernel_sleep and also does not need to change `@blocking`. | |||
2020-09-21 | Make `Thread#join` non-blocking. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3558 | |||
2020-09-21 | When setting current thread scheduler to nil, invoke `#close`. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3557 | |||
2020-09-20 | Remove from waiter in Mutex#lock with ensure when calling rb_scheduler_block() | Benoit Daloze | |
* Previously this could lead to an invalid waiter entry and then trying to wake up that waiter would result in various issues in rb_mutex_unlock_th(). | |||
2020-09-17 | Add missing goto found; | Benoit Daloze | |
* To still remove the lock from the Thread's list of acquired locks. * Also to not wake up other waiters and preserve blocking behavior. | |||
2020-09-17 | Fix Mutex#unlock with a scheduler and thread contention | Benoit Daloze | |
* It would hit "[BUG] unexpected THREAD_STOPPED" before. | |||
2020-09-17 | Document the various scheduler hooks | Benoit Daloze | |
2020-09-17 | Call scheduler.block instead of scheduler.kernel_sleep for blocking ↵ | Benoit Daloze | |
Queue/SizedQueue operations * scheduler.unblock was already already called before but with no corresponding scheduler.block * add test that Queue#pop makes the scheduler wait until it gets an element. | |||
2020-09-17 | Rename scheduler.{mutex_lock,mutex_unlock} to {block,unblock} | Benoit Daloze | |
* Move #kernel_sleep next to #block as it is similar | |||
2020-09-17 | Use a similar pattern for waiting and ready | Benoit Daloze | |
2020-09-16 | Add a note at the top of the test scheduler | Benoit Daloze | |
2020-09-14 | Add support for Queue & SizedQueue. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Add support for ConditionVariable. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Improve handling of urgent notification pipe. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Make Mutex per-Fiber instead of per-Thread | Benoit 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: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Rename `Fiber{}` to `Fiber.schedule{}`. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Standardised scheduler interface. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-09-14 | Simplify bitmasks for IO events. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3434 | |||
2020-08-18 | test/fiber/test_backtrace.rb: prevent a warning | Yusuke Endoh | |
``` /home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/test/fiber/test_backtrace.rb:9: warning: ambiguous first argument; put parentheses or a space even after `/' operator /home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/test/fiber/test_backtrace.rb:15: warning: ambiguous first argument; put parentheses or a space even after `/' operator ``` | |||
2020-08-18 | Expose ec -> backtrace (internal) and use it to implement fiber backtrace. | Samuel Williams | |
See <https://bugs.ruby-lang.org/issues/16815> for more details. Notes: Merged: https://github.com/ruby/ruby/pull/3422 | |||
2020-07-23 | Suppress "assigned but unused variable" warnings | Yusuke Endoh | |
2020-07-20 | Remove trailing spaces [ci skip] | Nobuyoshi Nakada | |
2020-07-20 | Add multi-threaded I/O test. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3323 | |||
2020-07-20 | Improve consistency of tests. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3323 | |||
2020-07-16 | Remove fiber HTTP test. | Samuel Williams | |
The HTTP test hits a remote website which isn't always available and is not self-contained. Ideally we will rewrite this test with an internal web server. Notes: Merged: https://github.com/ruby/ruby/pull/3321 | |||
2020-07-15 | Close sockets if blocking to fix leaked fds | Nobuyoshi Nakada | |
2020-06-09 | Improved assertions | Nobuyoshi Nakada | |
2020-06-09 | Return seconds slept after Thread.scheduler wait_sleep | nicholas a. evans | |
Kernel#sleep should still return seconds slept, even when using a Thread.scheduler. The return value of Scheduler#wait_sleep can be ignored. Notes: Merged: https://github.com/ruby/ruby/pull/3198 | |||
2020-05-23 | Fixup d48c92aa04ffd3a1cecef599eaa5e4409aab2fe4 | Hiroshi SHIBATA | |
2020-05-23 | Rename TestScheduler* to TestFiber for convention of the test directory | Hiroshi SHIBATA | |
2020-05-15 | Move `test/scheduler` -> `test/fiber` [Bug #16892][ruby-core:98366]. | Samuel Williams | |
Notes: Merged: https://github.com/ruby/ruby/pull/3110 |