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 /ext/monitor/depend | |
parent | 434966bffddd4299d34f5d1f7f225bf7396d0807 (diff) |
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.
Notes
Notes:
Merged-By: ko1 <ko1@atdot.net>
Diffstat (limited to 'ext/monitor/depend')
-rw-r--r-- | ext/monitor/depend | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/monitor/depend b/ext/monitor/depend new file mode 100644 index 0000000000..89efe1766b --- /dev/null +++ b/ext/monitor/depend @@ -0,0 +1,13 @@ +# AUTOGENERATED DEPENDENCIES START +monitor.o: $(RUBY_EXTCONF_H) +monitor.o: $(arch_hdrdir)/ruby/config.h +monitor.o: $(hdrdir)/ruby/assert.h +monitor.o: $(hdrdir)/ruby/backward.h +monitor.o: $(hdrdir)/ruby/defines.h +monitor.o: $(hdrdir)/ruby/intern.h +monitor.o: $(hdrdir)/ruby/missing.h +monitor.o: $(hdrdir)/ruby/ruby.h +monitor.o: $(hdrdir)/ruby/st.h +monitor.o: $(hdrdir)/ruby/subst.h +monitor.o: monitor.c +# AUTOGENERATED DEPENDENCIES END |