<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/monitor/lib, branch v3_3_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>[DOC] Surface existing MonitorMixin documentation</title>
<updated>2022-12-26T08:40:11+00:00</updated>
<author>
<name>Marco Costa</name>
<email>marco.costa@datadoghq.com</email>
</author>
<published>2022-12-23T22:00:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5e54c57d83949818200bcec069455d713be681ff'/>
<id>5e54c57d83949818200bcec069455d713be681ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use https instead of http</title>
<updated>2020-07-28T10:51:54+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2020-07-28T10:51:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=946cd6c5348d7dd12ecc41e79c3ca9803d2ca7f0'/>
<id>946cd6c5348d7dd12ecc41e79c3ca9803d2ca7f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix MonitorMixin when the super's initialize has kwargs</title>
<updated>2020-07-17T23:37:18+00:00</updated>
<author>
<name>Masataka Pocke Kuwabara</name>
<email>kuwabara@pocke.me</email>
</author>
<published>2020-07-11T07:01:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8d2333019abb1f8ad882dadf9096f81e9f427c6e'/>
<id>8d2333019abb1f8ad882dadf9096f81e9f427c6e</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>2020-04-03T05:37:28+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2020-04-03T05:37:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=810d66f3e7da3a5267974e3a3b952ec3e378049b'/>
<id>810d66f3e7da3a5267974e3a3b952ec3e378049b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>new_cond before mon_initialize</title>
<updated>2019-12-04T04:36:41+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-12-04T04:36:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c6e3db0c66312af1e932c21006437419efa9ac75'/>
<id>c6e3db0c66312af1e932c21006437419efa9ac75</id>
<content type='text'>
MonitorMixin#new_cond can be called before mon_initialize, so we
need to initialize `@monitor` before it.

https://bugs.ruby-lang.org/issues/16255#note-4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MonitorMixin#new_cond can be called before mon_initialize, so we
need to initialize `@monitor` before it.

https://bugs.ruby-lang.org/issues/16255#note-4
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix documentation of `MonitorMixin#new_cond` [ci skip] (#2707)</title>
<updated>2019-11-28T04:24:01+00:00</updated>
<author>
<name>y-yagi</name>
<email>yuuji.yaginuma@gmail.com</email>
</author>
<published>2019-11-28T04:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=18953416def52824c46a68370c4b34f5b720ee3f'/>
<id>18953416def52824c46a68370c4b34f5b720ee3f</id>
<content type='text'>
Since https://github.com/ruby/ruby/pull/2576,
`new_cond` uses the Monitor object, not the receiver.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since https://github.com/ruby/ruby/pull/2576,
`new_cond` uses the Monitor object, not the receiver.</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>delegate synchronize method</title>
<updated>2019-10-20T05:21:04+00:00</updated>
<author>
<name>Koichi Sasada</name>
<email>ko1@atdot.net</email>
</author>
<published>2019-10-20T05:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a0a3c701816c2fe4ab6e940c6cf5638756ceb6dc'/>
<id>a0a3c701816c2fe4ab6e940c6cf5638756ceb6dc</id>
<content type='text'>
Delegate MonitorMixin#synchronize body to Monitor#synchronize.
It makes guarantee interrupt safe (because Monitor#synchronize is
written in C). I thought Ruby implementation is also safe, but I
got stuck failure &lt;http://ci.rvm.jp/results/trunk_test@P895/2327639&gt;
so that I introduce this fix to guarantee interrupt safe.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Delegate MonitorMixin#synchronize body to Monitor#synchronize.
It makes guarantee interrupt safe (because Monitor#synchronize is
written in C). I thought Ruby implementation is also safe, but I
got stuck failure &lt;http://ci.rvm.jp/results/trunk_test@P895/2327639&gt;
so that I introduce this fix to guarantee interrupt safe.
</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>
