| Server IP : 109.234.162.214 / Your IP : 216.73.216.112 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/ruby18/share/ri/1.8/system/MonitorMixin/ |
Upload File : |
--- !ruby/object:RI::ClassDescription
attributes: []
class_methods:
- !ruby/object:RI::MethodSummary
name: extend_object
- !ruby/object:RI::MethodSummary
name: new
comment:
- !ruby/struct:SM::Flow::P
body: "Adds monitor functionality to an arbitrary object by mixing the module with <tt>include</tt>. For example:"
- !ruby/struct:SM::Flow::VERB
body: " require 'monitor.rb'\n\n buf = []\n buf.extend(MonitorMixin)\n empty_cond = buf.new_cond\n\n # consumer\n Thread.start do\n loop do\n buf.synchronize do\n empty_cond.wait_while { buf.empty? }\n print buf.shift\n end\n end\n end\n\n # producer\n while line = ARGF.gets\n buf.synchronize do\n buf.push(line)\n empty_cond.signal\n end\n end\n"
- !ruby/struct:SM::Flow::P
body: The consumer thread waits for the producer thread to push a line to buf while buf.empty?, and the producer thread (main thread) reads a line from ARGF and push it to buf, then call empty_cond.signal.
constants: []
full_name: MonitorMixin
includes: []
instance_methods:
- !ruby/object:RI::MethodSummary
name: mon_acquire
- !ruby/object:RI::MethodSummary
name: mon_check_owner
- !ruby/object:RI::MethodSummary
name: mon_enter
- !ruby/object:RI::MethodSummary
name: mon_enter_for_cond
- !ruby/object:RI::MethodSummary
name: mon_exit
- !ruby/object:RI::MethodSummary
name: mon_exit_for_cond
- !ruby/object:RI::MethodSummary
name: mon_initialize
- !ruby/object:RI::MethodSummary
name: mon_release
- !ruby/object:RI::MethodSummary
name: mon_synchronize
- !ruby/object:RI::MethodSummary
name: mon_try_enter
- !ruby/object:RI::MethodSummary
name: new_cond
- !ruby/object:RI::MethodSummary
name: synchronize
- !ruby/object:RI::MethodSummary
name: try_mon_enter
name: MonitorMixin
superclass: