Граф коммитов

13 Коммитов

Автор SHA1 Сообщение Дата
Samuel Williams 81d0ce7e97 Mark IO::Buffer as experimental. 2021-11-10 19:21:05 +13:00
Samuel Williams 050a895439
Wake up join list within thread EC context. (#4471)
* 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.
2021-06-14 17:56:53 +12:00
Samuel Williams 92449e0e99 Fix handling of timeout accessing scheduler outside of non-blocking context. 2021-03-30 18:38:42 +13:00
Samuel Williams a08ee8330d Rename to `Fiber#set_scheduler`. 2020-11-07 23:39:50 +13:00
Nobuyoshi Nakada eef12cdc06
strip trailing spaces [ci skip] 2020-10-01 13:47:57 +09:00
Samuel Williams 13660105e2 Don't call `Scheduler#close` if it doesn't exist. 2020-10-01 16:02:03 +13:00
Samuel Williams 388281c5c9 Fix order of operations during `rb_ec_finalize`. 2020-09-30 16:34:38 +13:00
Nobuyoshi Nakada b57c54679b
strip trailing spaces [ci skip] 2020-09-23 17:47:30 +09:00
Samuel Williams 501fff14c7 When setting current thread scheduler to nil, invoke `#close`. 2020-09-21 09:51:33 +12:00
Samuel Williams 132453fa52 Rename `Fiber{}` to `Fiber.schedule{}`. 2020-09-14 16:44:09 +12:00
Samuel Williams d387029f39 Standardised scheduler interface. 2020-09-14 16:44:09 +12:00
Hiroshi SHIBATA b2976a4fca
Fixup d48c92aa04 2020-05-23 17:24:29 +09:00
Hiroshi SHIBATA d48c92aa04
Rename TestScheduler* to TestFiber for convention of the test directory 2020-05-23 16:44:57 +09:00