Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | RJIT: Do nothing on jit_cont_free | Takashi Kokubun | 2023-03-09 | 1 | -0/+2 |
| | | | | if cont is NULL. | ||||
* | RJIT: Stop allowing leaked globals rjit_* | Takashi Kokubun | 2023-03-08 | 1 | -2/+2 |
| | |||||
* | s/mjit/rjit/ | Takashi Kokubun | 2023-03-06 | 1 | -3/+3 |
| | |||||
* | Adjust `else` style to be consistent in each files [ci skip] | Nobuyoshi Nakada | 2023-02-26 | 1 | -3/+6 |
| | |||||
* | Assigning `nil` to fiber storage deletes the association. (#7378) | Samuel Williams | 2023-02-25 | 1 | -7/+18 |
| | | | Also avoid allocations when looking up `Fiber#storage` if not needed. | ||||
* | Merge gc.h and internal/gc.h | Matt Valentine-House | 2023-02-09 | 1 | -1/+1 |
| | | | | [Feature #19425] | ||||
* | Docs: Fix problems with Fiber's docs | zverok | 2022-12-23 | 1 | -13/+15 |
| | | | | | | * References to Scheduler (was outdated to SchedulerInterface) * References between new methods (storage, [], []=) * Storage's call-sequence (rendered confusingly) | ||||
* | [DOC] Fix formatting | Nobuyoshi Nakada | 2022-12-21 | 1 | -2/+4 |
| | |||||
* | Use "Fiber storage variables" consistently | Benoit Daloze | 2022-12-20 | 1 | -2/+2 |
| | |||||
* | Improve documentation for fiber-scoped variables | Benoit Daloze | 2022-12-20 | 1 | -2/+2 |
| | | | | * Especially around Enumerator. | ||||
* | Ensure Fiber storage is only accessed from the Fiber it belongs to | Benoit Daloze | 2022-12-20 | 1 | -0/+10 |
| | |||||
* | Use an experimental warning for Fiber#storage= | Benoit Daloze | 2022-12-20 | 1 | -0/+6 |
| | |||||
* | Never use the storage of another Fiber, that violates the whole design | Benoit Daloze | 2022-12-20 | 1 | -16/+1 |
| | | | | * See https://bugs.ruby-lang.org/issues/19078#note-30 | ||||
* | Disable SEH workaround on __MINGW64__ only. (#6957) | Samuel Williams | 2022-12-19 | 1 | -1/+1 |
| | |||||
* | Add spec for fiber storage. (#6896) | Samuel Williams | 2022-12-10 | 1 | -0/+7 |
| | |||||
* | Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612) | Samuel Williams | 2022-12-01 | 1 | -53/+261 |
| | |||||
* | Using UNDEF_P macro | S-H-GAMELINKS | 2022-11-16 | 1 | -3/+3 |
| | |||||
* | Lower priority of `POSIX_MADV_DONTNEED`. (#6671) | Samuel Williams | 2022-11-04 | 1 | -3/+18 |
| | |||||
* | Reuse FIBER_RESUMED_P macro | S-H-GAMELINKS | 2022-10-31 | 1 | -1/+1 |
| | |||||
* | YJIT: GC and recompile all code pages (#6406) | Takashi Kokubun | 2022-10-25 | 1 | -1/+1 |
| | | | | | when it fails to allocate a new page. Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> | ||||
* | MJIT: Stop using the VM barrier for jit_cont | Takashi Kokubun | 2022-10-19 | 1 | -13/+22 |
| | | | | | | | | | | | | | | | | This solves multiple problems. First, RB_VM_LOCK_ENTER/LEAVE is a barrier. We could at least use the _NO_BARRIER variant. Second, this doesn't need to interfere with GC or other GVL users when multiple Ractors are used. This needs to be used in very few places, so the benefit of fine-grained locking would outweigh its small maintenance cost. Third, it fixes a crash for YJIT. Because YJIT is never disabled until a process exits unlike MJIT that finishes earlier, we could call jit_cont_free when EC no longer exists, which crashes RB_VM_LOCK_ENTER. | ||||
* | Allow passing a Rust closure to rb_iseq_callback (#6575) | Takashi Kokubun | 2022-10-18 | 1 | -2/+2 |
| | |||||
* | Make mjit_cont sharable with YJIT (#6556) | Takashi Kokubun | 2022-10-17 | 1 | -15/+116 |
| | | | | | | | * Make mjit_cont sharable with YJIT * Update dependencies * Update YJIT binding | ||||
* | Update `Fiber::Scheduler` documentation. (#6562) | Samuel Williams | 2022-10-15 | 1 | -339/+1 |
| | |||||
* | Improvements to IO::Buffer implementation and documentation. (#6525) | Samuel Williams | 2022-10-12 | 1 | -8/+29 |
| | |||||
* | Introduce `Fiber.blocking{}` for bypassing the fiber scheduler. (#6498) | Samuel Williams | 2022-10-06 | 1 | -0/+32 |
| | |||||
* | Try to ignore a noisy ASAN warning for continuation | Yusuke Endoh | 2022-09-20 | 1 | -0/+2 |
| | |||||
* | Rename rb_ary_tmp_new to rb_ary_hidden_new | Peter Zhu | 2022-07-26 | 1 | -1/+1 |
| | | | | | | rb_ary_tmp_new suggests that the array is temporary in some way, but that's not true, it just creates an array that's hidden and not on the transient heap. This commit renames it to rb_ary_hidden_new. | ||||
* | Prevent the stack from being marked twice | Aaron Patterson | 2022-07-20 | 1 | -0/+6 |
| | | | | | | | This commit prevents the stack from being marked twice: once via the Fiber, and once via the Thread. It introduces an assertion to assert that the ec on the thread is the same as the ec on the Fiber being marked via the thread. | ||||
* | cont.c: prevent a warning of GCC 12.1 | Yusuke Endoh | 2022-06-13 | 1 | -0/+4 |
| | | | | | | | | | | | | | | ... by assigning a dummy value to the allocated stack. http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220613T000004Z.log.html.gz ``` cont.c: In function ‘cont_restore_0.constprop’: cont.c:1489:28: warning: ‘*sp’ may be used uninitialized [-Wmaybe-uninitialized] 1489 | space[0] = *sp; | ^~~ ``` Also it adds some comments about the hack of dummy stack allocation. | ||||
* | Remove unnecessary ignore warnings. | Samuel Williams | 2022-05-26 | 1 | -5/+1 |
| | |||||
* | Ensure we retain the main fiber stack bounds. | Samuel Williams | 2022-05-25 | 1 | -3/+14 |
| | |||||
* | Tidy up redundant returns. | Samuel Williams | 2022-05-25 | 1 | -3/+1 |
| | |||||
* | Add support for address sanitizer for amd64 and arm64. | Samuel Williams | 2022-05-25 | 1 | -2/+40 |
| | |||||
* | Add ISEQ_BODY macro | Peter Zhu | 2022-03-24 | 1 | -1/+1 |
| | | | | | | Use ISEQ_BODY macro to get the rb_iseq_constant_body of the ISeq. Using this macro will make it easier for us to change the allocation strategy of rb_iseq_constant_body when using Variable Width Allocation. | ||||
* | Fix potential memory leak at fiber pool | Nobuyoshi Nakada | 2022-03-18 | 1 | -2/+2 |
| | | | | | Do not "allocate then wrap". It leaks the allocated memory if failed to create the wrapper. | ||||
* | Fix compilation error with `RB_EXPERIMENTAL_FIBER_POOL` | Nobuyoshi Nakada | 2022-03-18 | 1 | -1/+4 |
| | |||||
* | [DOC]Fix FreeBSD Bugzilla link | S-H-GAMELINKS | 2022-03-15 | 1 | -1/+1 |
| | |||||
* | Fix conversion macro for `size_t` | Nobuyoshi Nakada | 2022-03-13 | 1 | -2/+2 |
| | |||||
* | Fix experimental Fiber::Pool definition | Nobuyoshi Nakada | 2022-03-13 | 1 | -1/+1 |
| | | | | | Toplevel `Pool` is too generic, and `struct fiber_pool` does not seem compatible with `rb_fiber_t`. | ||||
* | `rb_fiber_terminate` must not return [Bug #18497] | Nobuyoshi Nakada | 2022-01-19 | 1 | -1/+2 |
| | | | | | | | | In a forked process from a fiber, the fiber becomes the only fiber, `fiber_switch` does nothing as there is no other fibers, `rb_fiber_terminate` does not terminate the fiber. In that case, reaches the end of `fiber_entry` finaly, which is declared as "COROUTINE" and should never return. | ||||
* | Negative RBOOL usage | Nobuyoshi Nakada | 2022-01-01 | 1 | -1/+1 |
| | |||||
* | Tidy up fiber scheduler interface documentation for `address_resolve` and ↵ | Samuel Williams | 2021-12-21 | 1 | -14/+34 |
| | | | | `timeout_after`. | ||||
* | Update cont.c | Samuel Williams | 2021-12-21 | 1 | -8/+23 |
| | |||||
* | Add SchedulerInterface#timeout_after and #address_resolve docs | zverok | 2021-12-21 | 1 | -0/+39 |
| | |||||
* | Document Fiber::SchedulerInterface#io_read and #io_write | zverok | 2021-12-21 | 1 | -1/+67 |
| | |||||
* | Fix conflicting declaration on Solaris | Nobuyoshi Nakada | 2021-11-30 | 1 | -2/+1 |
| | | | | | | | | | | | | | | | | | | | | SunC ``` "cont.c", line 24: identifier redeclared: madvise current : function(pointer to char, unsigned int, int) returning int previous: function(pointer to void, unsigned int, int) returning int : "/usr/include/sys/mman.h", line 232 ``` GCC ``` cont.c:24:12: error: conflicting types for 'madvise' 24 | extern int madvise(caddr_t, size_t, int); | ^~~~~~~ In file included from cont.c:16: /usr/include/sys/mman.h:232:12: note: previous declaration of 'madvise' was here 232 | extern int madvise(void *, size_t, int); | ^~~~~~~ ``` | ||||
* | Workaround for implicit declaration of function 'madvise' on Solaris | Naohisa Goto | 2021-11-30 | 1 | -0/+8 |
| | | | | | | | | On Solaris, madvise(3C) is NOT defined for SUS (XPG4v2) or later, but MADV_* macros are defined when __EXTENSIONS__ is defined. This may cause compile error on Solaris 10 with GCC when "-Werror=implicit-function-declaration" and "-D_XOPEN_SOURCE=600" are added by configure. | ||||
* | rb_fiber_raise(): add doxygen | 卜部昌平 | 2021-09-30 | 1 | -2/+2 |
| | | | | Must not be a bad idea to improve documents. | ||||
* | Expose `rb_fiber_raise` and tidy up the internal implementation. | Samuel Williams | 2021-09-20 | 1 | -71/+94 |
| |