<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/fiber/test_mutex.rb, branch v3_2_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>mutex: Raise a ThreadError when detecting a fiber deadlock (#6680)</title>
<updated>2022-11-08T11:43:16+00:00</updated>
<author>
<name>Jean byroot Boussier</name>
<email>jean.boussier+github@shopify.com</email>
</author>
<published>2022-11-08T11:43:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=eacedcfe44a0ae22bf54ddb7df193c48d4c857c6'/>
<id>eacedcfe44a0ae22bf54ddb7df193c48d4c857c6</id>
<content type='text'>
[Bug #19105]

If no fiber scheduler is registered and the fiber that
owns the lock and the one that try to acquire it
both belong to the same thread, we're in a deadlock case.

Co-authored-by: Jean Boussier &lt;byroot@ruby-lang.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #19105]

If no fiber scheduler is registered and the fiber that
owns the lock and the one that try to acquire it
both belong to the same thread, we're in a deadlock case.

Co-authored-by: Jean Boussier &lt;byroot@ruby-lang.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Prefer qualified names under Thread</title>
<updated>2021-06-29T02:41:10+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-06-28T14:01:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9eae8cdefba61e9e51feb30a4b98525593169666'/>
<id>9eae8cdefba61e9e51feb30a4b98525593169666</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TestFiberMutex#test_condition_variable assertion</title>
<updated>2020-11-08T15:49:33+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2020-11-08T15:49:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b8eb08e0963cff5f3963780b68514c365613609f'/>
<id>b8eb08e0963cff5f3963780b68514c365613609f</id>
<content type='text'>
* Now that it works correctly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Now that it works correctly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename to `Fiber#set_scheduler`.</title>
<updated>2020-11-07T10:39:50+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2020-10-16T01:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a08ee8330d3d739467bfa34deeb797d83e59ed3c'/>
<id>a08ee8330d3d739467bfa34deeb797d83e59ed3c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refined assertions for better failure messages</title>
<updated>2020-10-01T04:48:15+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2020-10-01T04:48:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=1d3024da26b2d1c48a04864024a5ed51a8ba3139'/>
<id>1d3024da26b2d1c48a04864024a5ed51a8ba3139</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove `Thread.scheduler` from public interface.</title>
<updated>2020-10-01T03:56:05+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2020-10-01T00:44:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=dd2e95fb26b89ce060631af0fd372b5780a443dd'/>
<id>dd2e95fb26b89ce060631af0fd372b5780a443dd</id>
<content type='text'>
It's implementation is equivalent to:

Thread.current.scheduler unless Thread.current.blocking?
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's implementation is equivalent to:

Thread.current.scheduler unless Thread.current.blocking?
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove from waiter in Mutex#lock with ensure when calling rb_scheduler_block()</title>
<updated>2020-09-20T11:35:39+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2020-09-20T11:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=6987c8997e6cd8f45bbd7ece6582c0024be0cc0f'/>
<id>6987c8997e6cd8f45bbd7ece6582c0024be0cc0f</id>
<content type='text'>
* Previously this could lead to an invalid waiter entry and then trying
  to wake up that waiter would result in various issues in rb_mutex_unlock_th().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Previously this could lead to an invalid waiter entry and then trying
  to wake up that waiter would result in various issues in rb_mutex_unlock_th().
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Mutex#unlock with a scheduler and thread contention</title>
<updated>2020-09-17T13:15:43+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2020-09-17T13:15:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=264889ec3d3d38fc1fd23c4fb48402f1367a8deb'/>
<id>264889ec3d3d38fc1fd23c4fb48402f1367a8deb</id>
<content type='text'>
* It would hit "[BUG] unexpected THREAD_STOPPED" before.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* It would hit "[BUG] unexpected THREAD_STOPPED" before.
</pre>
</div>
</content>
</entry>
<entry>
<title>Call scheduler.block instead of scheduler.kernel_sleep for blocking Queue/SizedQueue operations</title>
<updated>2020-09-17T12:59:38+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2020-09-17T12:45:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9472d160619861201bad91560c06248fef8362dc'/>
<id>9472d160619861201bad91560c06248fef8362dc</id>
<content type='text'>
* scheduler.unblock was already already called before but with no corresponding scheduler.block
* add test that Queue#pop makes the scheduler wait until it gets an element.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* scheduler.unblock was already already called before but with no corresponding scheduler.block
* add test that Queue#pop makes the scheduler wait until it gets an element.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for Queue &amp; SizedQueue.</title>
<updated>2020-09-14T04:44:09+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2020-09-13T23:10:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8eea66a0ca8965ae8319b4c404f61c4d46866f64'/>
<id>8eea66a0ca8965ae8319b4c404f61c4d46866f64</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
