| Age | Commit message (Collapse) | Author |
|
Inside HTML is not markdown.
|
|
`timer_th.waiting` should be protected by `timer_th.waiting_lock`
|
|
|
|
The test fails when RGENGC_CHECK_MODE is turned on:
TestString#test_sub_gc_compact_stress = 9.42 s
1) Failure:
TestString#test_sub_gc_compact_stress [test/ruby/test_string.rb:2089]:
<"aaa [amp] yyy"> expected but was
<"aaa [] yyy">.
|
|
* In the epoll implementation, you get an EEXIST if you try to register the same event for the same fd more than once for a particular epoll instance
* Otherwise kevent will just override the previous event registration, and if multiple threads listen on the same fd only the last one to register will ever finish, the others are stuck
* This approach will lead to native threads getting created, similar to the epoll implementation. This is not ideal, but it fixes certain test cases for now, like test/socket/test_tcp.rb#test_accept_multithread
|
|
The test fails when RGENGC_CHECK_MODE is turned on:
TestRegexp#test_to_s_under_gc_compact_stress = 13.46 s
1) Failure:
TestRegexp#test_to_s_under_gc_compact_stress [test/ruby/test_regexp.rb:81]:
<"(?-mix:abcd\u3042)"> expected but was
<"(?-mix:\u5C78\u3030\u5C78\u3030\u5C78\u3030\u5C78\u3030\u5C78\u3030)">.
|
|
|
|
|
|
|
|
`Set::VERSION` was not defined in old set.rb bundled with ruby 3.2 or
earlier.
Also add comment for spec/mspec/tool/remove_old_guards.rb.
|
|
|
|
So that it can run without `--disable=gems` option.
|
|
|
|
|
|
https://github.com/ruby/set/commit/d6cab5bcc8
|
|
https://github.com/ruby/set/commit/c63047c2ce
|
|
https://github.com/ruby/set/commit/32a9689696
|
|
https://github.com/ruby/set/commit/64dad673d8
|
|
|
|
When $stderr is redirected, you'll have no way to see why RJIT got
broken. This reference must always be the actual stderr.
|
|
It was renamed from test_mjit, but we did not maintain it as test_rjit.
We test RJIT very differently.
|
|
|
|
When a forked process was started in a thread, this would result in a
double-free during the child process exit.
RUBY_FREE_AT_EXIT=1 ./miniruby -e 'Thread.new { fork { } }.join; Process.waitpid'
This is because the main thread in the forked process was not the
initial VM thread, and the new thread's stack was freed as part of
objectspace iteration.
This change also allows rb_threadptr_root_fiber_release to run without
EC being available.
|
|
Ractor's free iterates through its TLS keys so we need to keep this
memory available until after Ractors are freed.
Minimal reproduction:
RUBY_FREE_AT_EXIT=1 ./miniruby -e rand
|
|
This argument doesn't seem used anymore. Since we want to free these
objects during VM destruction when RUBY_FREE_AT_EXIT is set they must
work without an EC.
This avoids a use-after-free running `RUBY_FREE_AT_EXIT=1 ./miniruby -e ''`
|
|
|
|
|
|
If the Fiber is nonblocking mode, fiber scheduler needs to handle
IO events.
|
|
if the IO for `IO#read_nonblock` is not ready, it needs
to return (or raise) immediately.
|
|
|
|
`hrrel / RB_HRTIME_PER_MSEC` floor the timeout value and it can
return wrong value by `Mutex#sleep` (return Integer even if
it should return nil (timeout'ed)).
This patch ceil the value and the issue was solved.
|
|
|
|
Introduce `thread_io_wait_events()` to make 1 function to call
`thread_sched_wait_events()`.
In ``thread_io_wait_events()`, manipulate `waiting_fd` to raise
an exception when closing the IO correctly.
|
|
This is more convenient for accessing those fields.
|
|
|
|
|
|
I <jaruga@ruby-lang.org> haven't received the notifications since August 2022.
So, try another way to be notified written on the document below.
https://docs.travis-ci.com/user/notifications/#configuring-email-notifications
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This value is only incremented when rb_iseq_translate_threaded_code is
called, which doesn't happen for iseqs which result in a syntax error.
This is easy to hit by running a debug build with RUBY_FREE_AT_EXIT=1,
but any build and options could underflow this value by running enough
evals.
|
|
|
|
We don't need to save/restore x30 twice, and we can just use `ret`,
which uses x30 as return address register instead of explicit `ret <reg>`
instruction. This also allows us to use `autiasp` instead of `autia1716`
and we can skip setting SP/LR to x16/x17.
Also the size of register save area is shrunk by 16 bytes due to the
removal of extra x30 save/restore.
|
|
Fixes https://bugs.ruby-lang.org/issues/20029
|