????JFIF??x?x????'
| Server IP : 172.67.174.47 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/./self/root/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: