<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/scheduler.c, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[DOC] Enhance Fiber::Scheduler docs (#15708)</title>
<updated>2025-12-24T00:53:08+00:00</updated>
<author>
<name>Victor Shepelev</name>
<email>zverok.offline@gmail.com</email>
</author>
<published>2025-12-24T00:53:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=01d1cbbbec3d40cb2e3f564371beb9dc3729c7ba'/>
<id>01d1cbbbec3d40cb2e3f564371beb9dc3729c7ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fewer calls to `GET_EC()` and `GET_THREAD()` (#15506)</title>
<updated>2025-12-12T19:47:43+00:00</updated>
<author>
<name>Luke Gruber</name>
<email>luke.gruber@shopify.com</email>
</author>
<published>2025-12-12T19:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3add3db797c4216423fdaa4bef6e2ee3c7630303'/>
<id>3add3db797c4216423fdaa4bef6e2ee3c7630303</id>
<content type='text'>
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:

* rb_thread_wait_for_single_fd
* rb_thread_io_wait

I didn't change the following exported internal function because it's
used in C extensions:

* rb_thread_fd_select

I added a comment to note that this function, although internal, is used
in C extensions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:

* rb_thread_wait_for_single_fd
* rb_thread_io_wait

I didn't change the following exported internal function because it's
used in C extensions:

* rb_thread_fd_select

I added a comment to note that this function, although internal, is used
in C extensions.</pre>
</div>
</content>
</entry>
<entry>
<title>Yield to scheduler if interrupts are pending. (#14700)</title>
<updated>2025-12-06T08:44:14+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-12-06T08:44:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=42f5654b69244b5892ff2c2eba8d838064d2cd9f'/>
<id>42f5654b69244b5892ff2c2eba8d838064d2cd9f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix `io_pwrite` fiber scheduler hook. (#15428)</title>
<updated>2025-12-06T07:35:08+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@shopify.com</email>
</author>
<published>2025-12-06T07:35:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=180020e1e53b96a3080f3ac731cb32bbbdee31d5'/>
<id>180020e1e53b96a3080f3ac731cb32bbbdee31d5</id>
<content type='text'>
Fix io_pwrite fiber scheduler hook.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix io_pwrite fiber scheduler hook.</pre>
</div>
</content>
</entry>
<entry>
<title>Use `ec-&gt;interrupt_mask` to prevent interrupts. (#14588)</title>
<updated>2025-09-18T02:24:29+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-09-18T02:24:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e6879401feba22e3657a231cbedc751998cb7176'/>
<id>e6879401feba22e3657a231cbedc751998cb7176</id>
<content type='text'>
Disallow pending interrupts to be checked during `FiberScheduler#unblock`.

Ractors can send signals at any time, so the previous debug assertion
can fail if a Ractor sends a signal.

Co-authored-by: Luke Gruber &lt;luke.gruber@shopify.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disallow pending interrupts to be checked during `FiberScheduler#unblock`.

Ractors can send signals at any time, so the previous debug assertion
can fail if a Ractor sends a signal.

Co-authored-by: Luke Gruber &lt;luke.gruber@shopify.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[DOC] Fill undocumented documents</title>
<updated>2025-08-03T17:23:43+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2025-08-03T17:23:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6179cc011829b9e4c7b253ac2d2a3f47d8fd6890'/>
<id>6179cc011829b9e4c7b253ac2d2a3f47d8fd6890</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix blocking operation cancellation. (#13614)</title>
<updated>2025-06-14T03:32:51+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-06-14T03:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=68625a23d6deeb2e4c498d4bccc36d616608e05f'/>
<id>68625a23d6deeb2e4c498d4bccc36d616608e05f</id>
<content type='text'>
Expose `rb_thread_resolve_unblock_function` internally.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Expose `rb_thread_resolve_unblock_function` internally.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix handling of cancelled blocking operations. (#13570)</title>
<updated>2025-06-10T07:30:43+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@shopify.com</email>
</author>
<published>2025-06-10T07:30:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cdeedd5bc1a3c712f7f7b8c2409906a0b5ed9e37'/>
<id>cdeedd5bc1a3c712f7f7b8c2409906a0b5ed9e37</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Be more specific with `RUBY_VM_INTERRUPTED` in debug assertions.</title>
<updated>2025-06-06T11:29:04+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-06-06T10:12:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dde9fca63bf4bf56050c734adca3eaae70506179'/>
<id>dde9fca63bf4bf56050c734adca3eaae70506179</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Log `ec-&gt;interrupt_flag` if non-zero.</title>
<updated>2025-06-06T09:15:41+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2025-06-06T08:23:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5ac435dc345d81b78bac4c995fb2b3dc7cface68'/>
<id>5ac435dc345d81b78bac4c995fb2b3dc7cface68</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
