<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/monitor/monitor.c, 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>Distinguish signal and timeout [Bug #16608]</title>
<updated>2021-07-25T20:09:03+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2020-02-06T00:14:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=070557afc4ca83876b951fe090806b59e3867ae5'/>
<id>070557afc4ca83876b951fe090806b59e3867ae5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE</title>
<updated>2021-05-04T12:56:55+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2021-04-29T13:03:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fa7a712d460dc904f8a836bb22b54d457d95ba8e'/>
<id>fa7a712d460dc904f8a836bb22b54d457d95ba8e</id>
<content type='text'>
* See [Feature #17752]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* See [Feature #17752]
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Monitor to lock per Fiber, like Mutex [Bug #17827]</title>
<updated>2021-04-27T16:42:50+00:00</updated>
<author>
<name>Benoit Daloze</name>
<email>eregontp@gmail.com</email>
</author>
<published>2021-04-27T16:42:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3a3b19b2bba49e5d6f1cf13764eb6dd701397be9'/>
<id>3a3b19b2bba49e5d6f1cf13764eb6dd701397be9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a typo [ci skip]</title>
<updated>2021-01-05T14:10:39+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2021-01-05T14:10:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3d439447250f19333418adcdf777142dda4b3364'/>
<id>3d439447250f19333418adcdf777142dda4b3364</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ext/monitor is ractor-safe</title>
<updated>2020-12-19T19:22:29+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2020-12-19T19:21:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=846c4b03b8e9ff788f355f1bcd12e75715288e95'/>
<id>846c4b03b8e9ff788f355f1bcd12e75715288e95</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Monitor#exit: check monitor ownership.</title>
<updated>2019-11-12T01:07:45+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-11-12T01:02:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fd6445b7e8bab9d340be6f76688a8b96f1b52029'/>
<id>fd6445b7e8bab9d340be6f76688a8b96f1b52029</id>
<content type='text'>
Monitor#exit should be called by only onwer Thread. However, there
is not check for it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Monitor#exit should be called by only onwer Thread. However, there
is not check for it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Native MonitorMixin::ConditionVariable#wait</title>
<updated>2019-10-20T06:45:30+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-10-20T06:45:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a236eaa762137d7cb32b8311e0ef9a74bbb0f385'/>
<id>a236eaa762137d7cb32b8311e0ef9a74bbb0f385</id>
<content type='text'>
MonitorMixin::ConditionVariable#wait can be interrupted just after
Monitor#exit_for_cond. So implementation in C.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MonitorMixin::ConditionVariable#wait can be interrupted just after
Monitor#exit_for_cond. So implementation in C.
</pre>
</div>
</content>
</entry>
<entry>
<title>make monitor.so for performance. (#2576)</title>
<updated>2019-10-19T19:52:20+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-10-19T19:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=caac5f777ae288b5982708b8690e712e1cae0cf6'/>
<id>caac5f777ae288b5982708b8690e712e1cae0cf6</id>
<content type='text'>
Recent monitor.rb has performance problem because of interrupt
handlers. 'Monitor#synchronize' is frequently used primitive
so the performance of this method is important.

This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension)
and make it faster. See [Feature #16255] for details.

Monitor class objects are normal object which include MonitorMixin.
This patch introduce a Monitor class which is implemented on C
and MonitorMixin uses Monitor object as re-entrant (recursive)
Mutex. This technique improve performance because we don't need
to care atomicity and we don't need accesses to instance variables
any more on Monitor class.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent monitor.rb has performance problem because of interrupt
handlers. 'Monitor#synchronize' is frequently used primitive
so the performance of this method is important.

This patch rewrite 'monitor.rb' with 'monitor.so' (C-extension)
and make it faster. See [Feature #16255] for details.

Monitor class objects are normal object which include MonitorMixin.
This patch introduce a Monitor class which is implemented on C
and MonitorMixin uses Monitor object as re-entrant (recursive)
Mutex. This technique improve performance because we don't need
to care atomicity and we don't need accesses to instance variables
any more on Monitor class.</pre>
</div>
</content>
</entry>
</feed>
