diff options
Diffstat (limited to 'ext/monitor')
-rw-r--r-- | ext/monitor/depend | 30 | ||||
-rw-r--r-- | ext/monitor/lib/monitor.rb | 13 | ||||
-rw-r--r-- | ext/monitor/monitor.c | 2 |
3 files changed, 22 insertions, 23 deletions
diff --git a/ext/monitor/depend b/ext/monitor/depend index 2e3ba40928..bc7ead0d32 100644 --- a/ext/monitor/depend +++ b/ext/monitor/depend @@ -1,6 +1,19 @@ # 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/backward/2/assume.h +monitor.o: $(hdrdir)/ruby/backward/2/attributes.h +monitor.o: $(hdrdir)/ruby/backward/2/bool.h +monitor.o: $(hdrdir)/ruby/backward/2/inttypes.h +monitor.o: $(hdrdir)/ruby/backward/2/limits.h +monitor.o: $(hdrdir)/ruby/backward/2/long_long.h +monitor.o: $(hdrdir)/ruby/backward/2/stdalign.h +monitor.o: $(hdrdir)/ruby/backward/2/stdarg.h +monitor.o: $(hdrdir)/ruby/defines.h +monitor.o: $(hdrdir)/ruby/intern.h +monitor.o: $(hdrdir)/ruby/internal/abi.h monitor.o: $(hdrdir)/ruby/internal/anyargs.h monitor.o: $(hdrdir)/ruby/internal/arithmetic.h monitor.o: $(hdrdir)/ruby/internal/arithmetic/char.h @@ -38,6 +51,7 @@ monitor.o: $(hdrdir)/ruby/internal/attr/noexcept.h monitor.o: $(hdrdir)/ruby/internal/attr/noinline.h monitor.o: $(hdrdir)/ruby/internal/attr/nonnull.h monitor.o: $(hdrdir)/ruby/internal/attr/noreturn.h +monitor.o: $(hdrdir)/ruby/internal/attr/packed_struct.h monitor.o: $(hdrdir)/ruby/internal/attr/pure.h monitor.o: $(hdrdir)/ruby/internal/attr/restrict.h monitor.o: $(hdrdir)/ruby/internal/attr/returns_nonnull.h @@ -97,7 +111,6 @@ monitor.o: $(hdrdir)/ruby/internal/intern/enumerator.h monitor.o: $(hdrdir)/ruby/internal/intern/error.h monitor.o: $(hdrdir)/ruby/internal/intern/eval.h monitor.o: $(hdrdir)/ruby/internal/intern/file.h -monitor.o: $(hdrdir)/ruby/internal/intern/gc.h monitor.o: $(hdrdir)/ruby/internal/intern/hash.h monitor.o: $(hdrdir)/ruby/internal/intern/io.h monitor.o: $(hdrdir)/ruby/internal/intern/load.h @@ -128,31 +141,18 @@ monitor.o: $(hdrdir)/ruby/internal/memory.h monitor.o: $(hdrdir)/ruby/internal/method.h monitor.o: $(hdrdir)/ruby/internal/module.h monitor.o: $(hdrdir)/ruby/internal/newobj.h -monitor.o: $(hdrdir)/ruby/internal/rgengc.h monitor.o: $(hdrdir)/ruby/internal/scan_args.h monitor.o: $(hdrdir)/ruby/internal/special_consts.h monitor.o: $(hdrdir)/ruby/internal/static_assert.h monitor.o: $(hdrdir)/ruby/internal/stdalign.h monitor.o: $(hdrdir)/ruby/internal/stdbool.h +monitor.o: $(hdrdir)/ruby/internal/stdckdint.h monitor.o: $(hdrdir)/ruby/internal/symbol.h monitor.o: $(hdrdir)/ruby/internal/value.h monitor.o: $(hdrdir)/ruby/internal/value_type.h monitor.o: $(hdrdir)/ruby/internal/variable.h monitor.o: $(hdrdir)/ruby/internal/warning_push.h monitor.o: $(hdrdir)/ruby/internal/xmalloc.h -monitor.o: $(hdrdir)/ruby/assert.h -monitor.o: $(hdrdir)/ruby/backward.h -monitor.o: $(hdrdir)/ruby/backward/2/assume.h -monitor.o: $(hdrdir)/ruby/backward/2/attributes.h -monitor.o: $(hdrdir)/ruby/backward/2/bool.h -monitor.o: $(hdrdir)/ruby/backward/2/gcc_version_since.h -monitor.o: $(hdrdir)/ruby/backward/2/inttypes.h -monitor.o: $(hdrdir)/ruby/backward/2/limits.h -monitor.o: $(hdrdir)/ruby/backward/2/long_long.h -monitor.o: $(hdrdir)/ruby/backward/2/stdalign.h -monitor.o: $(hdrdir)/ruby/backward/2/stdarg.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 diff --git a/ext/monitor/lib/monitor.rb b/ext/monitor/lib/monitor.rb index 11c5ac17d9..31d6d2b3c4 100644 --- a/ext/monitor/lib/monitor.rb +++ b/ext/monitor/lib/monitor.rb @@ -7,17 +7,19 @@ # You can freely distribute/modify this library. # +require 'monitor.so' + # # In concurrent programming, a monitor is an object or module intended to be -# used safely by more than one thread. The defining characteristic of a -# monitor is that its methods are executed with mutual exclusion. That is, at +# used safely by more than one thread. The defining characteristic of a +# monitor is that its methods are executed with mutual exclusion. That is, at # each point in time, at most one thread may be executing any of its methods. # This mutual exclusion greatly simplifies reasoning about the implementation # of monitors compared to reasoning about parallel code that updates a data # structure. # # You can read more about the general principles on the Wikipedia page for -# Monitors[https://en.wikipedia.org/wiki/Monitor_%28synchronization%29] +# Monitors[https://en.wikipedia.org/wiki/Monitor_%28synchronization%29]. # # == Examples # @@ -48,7 +50,7 @@ # end # # The consumer thread waits for the producer thread to push a line to buf -# while <tt>buf.empty?</tt>. The producer thread (main thread) reads a +# while <tt>buf.empty?</tt>. The producer thread (main thread) reads a # line from ARGF and pushes it into buf then calls <tt>empty_cond.signal</tt> # to notify the consumer thread of new data. # @@ -86,9 +88,6 @@ # This Class is implemented as subclass of Array which includes the # MonitorMixin module. # - -require 'monitor.so' - module MonitorMixin # # FIXME: This isn't documented in Nutshell. diff --git a/ext/monitor/monitor.c b/ext/monitor/monitor.c index 10209cf2aa..86613f6ade 100644 --- a/ext/monitor/monitor.c +++ b/ext/monitor/monitor.c @@ -102,7 +102,7 @@ monitor_exit(VALUE monitor) struct rb_monitor *mc = monitor_ptr(monitor); - if (mc->count <= 0) rb_bug("monitor_exit: count:%d\n", (int)mc->count); + if (mc->count <= 0) rb_bug("monitor_exit: count:%d", (int)mc->count); mc->count--; if (mc->count == 0) { |