<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/fiber/test_scheduler.rb, branch v4.0.3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Tidy up fiber scheduler tests.</title>
<updated>2025-12-24T01:10:09+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-12-24T00:26:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=30d9782c5c07db2d5df44656eb0218616f7b0bb5'/>
<id>30d9782c5c07db2d5df44656eb0218616f7b0bb5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix flaky test.</title>
<updated>2025-12-24T01:10:09+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-12-24T00:09:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2df72c0c1a686052ab00f853bb15bd67dcbfedd4'/>
<id>2df72c0c1a686052ab00f853bb15bd67dcbfedd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>skip TestFiberScheduler#test_io_write_on_flush because it makes GC.stat test fragile</title>
<updated>2025-12-19T18:49:50+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2025-12-19T18:49:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=04e90fe200d736db0a32a794b8dc742fa0cb5441'/>
<id>04e90fe200d736db0a32a794b8dc742fa0cb5441</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fiber scheduler: invoke `#io_write` hook on IO flush (#15609)</title>
<updated>2025-12-19T10:58:26+00:00</updated>
<author>
<name>Sharon Rosner</name>
<email>sharon@noteflakes.com</email>
</author>
<published>2025-12-19T10:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9ee2243bede65fba8b7fbce54a232b8c063a5616'/>
<id>9ee2243bede65fba8b7fbce54a232b8c063a5616</id>
<content type='text'>
Previously, calling IO#flush or closing an IO with unflushed buffered
writes would just invoke `#blocking_operation_wait` and flush the write
buffer using a `write` syscall. This change adds flushing through the
fiber scheduler by invoking the `#io_write` hook.

* Prefer IO::Buffer#write in IOScheduler

* Use Dir.tmpdir for test file

* Correctly handle errors in io_flush_buffer_fiber_scheduler</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, calling IO#flush or closing an IO with unflushed buffered
writes would just invoke `#blocking_operation_wait` and flush the write
buffer using a `write` syscall. This change adds flushing through the
fiber scheduler by invoking the `#io_write` hook.

* Prefer IO::Buffer#write in IOScheduler

* Use Dir.tmpdir for test file

* Correctly handle errors in io_flush_buffer_fiber_scheduler</pre>
</div>
</content>
</entry>
<entry>
<title>Correctly handle `Process.fork` with an active `Fiber.scheduler`. (#15385)</title>
<updated>2025-12-05T05:20:39+00:00</updated>
<author>
<name>Sharon Rosner</name>
<email>sharon@noteflakes.com</email>
</author>
<published>2025-12-05T05:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5f6b31c23ff1eefdf3cd5807ce5f80abf24eb1b2'/>
<id>5f6b31c23ff1eefdf3cd5807ce5f80abf24eb1b2</id>
<content type='text'>
In the child process, nullify the current fiber scheduler and set the current fiber to blocking.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the child process, nullify the current fiber scheduler and set the current fiber to blocking.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix scheduler warning</title>
<updated>2025-06-03T19:55:37+00:00</updated>
<author>
<name>Jean Boussier</name>
<email>jean.boussier@gmail.com</email>
</author>
<published>2025-06-03T08:31:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=553753cd3eaece627e31c987067edbf241d6c28b'/>
<id>553753cd3eaece627e31c987067edbf241d6c28b</id>
<content type='text'>
```
test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
```
test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Push a real iseq in rb_vm_push_frame_fname()</title>
<updated>2025-03-12T19:00:26+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-03-11T02:37:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=08b3a45bc97c835b4677bf76dbce68fd51d81897'/>
<id>08b3a45bc97c835b4677bf76dbce68fd51d81897</id>
<content type='text'>
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up the
non-GC-allocated iseq that rb_vm_push_frame_fname() creates,
which led to a SEGV when the GC tried to mark the non GC object.

Put a real iseq imemo instead. Speed should be about the same since
the old code also did a imemo allocation and a malloc allocation.

Real iseq allows ironing out the special-casing of dummy frames in
rb_execution_context_mark() and rb_execution_context_update(). A check
is added to RubyVM::ISeq#eval, though, to stop attempts to run dummy
iseqs.

[Bug #21180]

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up the
non-GC-allocated iseq that rb_vm_push_frame_fname() creates,
which led to a SEGV when the GC tried to mark the non GC object.

Put a real iseq imemo instead. Speed should be about the same since
the old code also did a imemo allocation and a malloc allocation.

Real iseq allows ironing out the special-casing of dummy frames in
rb_execution_context_mark() and rb_execution_context_update(). A check
is added to RubyVM::ISeq#eval, though, to stop attempts to run dummy
iseqs.

[Bug #21180]

Co-authored-by: Aaron Patterson &lt;tenderlove@ruby-lang.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure fiber scheduler re-acquires mutex when interrupted from sleep. (#12158)</title>
<updated>2024-11-23T23:54:12+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2024-11-23T23:54:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a8c2d5e7bee5fad0965baeb58d312ddc5932ec26'/>
<id>a8c2d5e7bee5fad0965baeb58d312ddc5932ec26</id>
<content type='text'>
[Bug #20907]</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #20907]</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce number of iterations in `TestFiberScheduler#test_autoload`. (#8391)</title>
<updated>2023-09-07T01:53:51+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2023-09-07T01:53:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=05aaff2191cbe777d1efb915ab9652eeaa1c16b8'/>
<id>05aaff2191cbe777d1efb915ab9652eeaa1c16b8</id>
<content type='text'>
`ppc64le` appears to be struggling with this test due to timeout. Let's see
if reducing the number of iterations can help improve the test performance.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`ppc64le` appears to be struggling with this test due to timeout. Let's see
if reducing the number of iterations can help improve the test performance.</pre>
</div>
</content>
</entry>
<entry>
<title>Wait killed threads</title>
<updated>2022-12-02T14:46:21+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-12-02T14:44:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bb0ec7df3220de317f719d1e8b5aa45bd40dad25'/>
<id>bb0ec7df3220de317f719d1e8b5aa45bd40dad25</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
