<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/monitor/monitor.c, branch v3_0_4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) fa7a712d460dc904f8a836bb22b54d457d95ba8e:</title>
<updated>2022-02-19T05:25:50+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2022-02-19T05:25:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4868d4b439123a7ce2b24770833d2a575b81e3a5'/>
<id>4868d4b439123a7ce2b24770833d2a575b81e3a5</id>
<content type='text'>
	Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE

	* See [Feature #17752]
	---
	 ext/cgi/escape/escape.c  | 2 +-
	 ext/monitor/monitor.c    | 2 +-
	 ext/racc/cparse/cparse.c | 2 +-
	 ext/zlib/zlib.c          | 2 +-
	 4 files changed, 4 insertions(+), 4 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE

	* See [Feature #17752]
	---
	 ext/cgi/escape/escape.c  | 2 +-
	 ext/monitor/monitor.c    | 2 +-
	 ext/racc/cparse/cparse.c | 2 +-
	 ext/zlib/zlib.c          | 2 +-
	 4 files changed, 4 insertions(+), 4 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 3a3b19b2bba49e5d6f1cf13764eb6dd701397be9: [Backport #17827]</title>
<updated>2021-05-23T05:36:05+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@ruby-lang.org</email>
</author>
<published>2021-05-23T05:36:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f9196de1dee6f5ab8b6fe115070b92775a3500fe'/>
<id>f9196de1dee6f5ab8b6fe115070b92775a3500fe</id>
<content type='text'>
	Fix Monitor to lock per Fiber, like Mutex [Bug #17827]

	---
	 ext/monitor/monitor.c        | 10 +++++-----
	 test/monitor/test_monitor.rb |  7 +++++++
	 2 files changed, 12 insertions(+), 5 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Fix Monitor to lock per Fiber, like Mutex [Bug #17827]

	---
	 ext/monitor/monitor.c        | 10 +++++-----
	 test/monitor/test_monitor.rb |  7 +++++++
	 2 files changed, 12 insertions(+), 5 deletions(-)
</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>
