diff options
author | Koichi Sasada <ko1@atdot.net> | 2019-10-20 04:52:20 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-20 04:52:20 +0900 |
commit | caac5f777ae288b5982708b8690e712e1cae0cf6 (patch) | |
tree | e4257d65c062b7e8c9e4c4b962cee3ca7c5e1d4c /compar.c | |
parent | 434966bffddd4299d34f5d1f7f225bf7396d0807 (diff) | |
download | ruby-caac5f777ae288b5982708b8690e712e1cae0cf6.tar.gz |
make monitor.so for performance. (#2576)
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.
Diffstat (limited to 'compar.c')
0 files changed, 0 insertions, 0 deletions