X7ROOT File Manager
Current Path:
/opt/alt/ruby18/share/ri/1.8/system/MonitorMixin
opt
/
alt
/
ruby18
/
share
/
ri
/
1.8
/
system
/
MonitorMixin
/
ðŸ“
..
ðŸ“
ConditionVariable
📄
cdesc-MonitorMixin.yaml
(1.8 KB)
📄
extend_object-c.yaml
(189 B)
📄
mon_acquire-i.yaml
(188 B)
📄
mon_check_owner-i.yaml
(302 B)
📄
mon_enter-i.yaml
(240 B)
📄
mon_enter_for_cond-i.yaml
(202 B)
📄
mon_exit-i.yaml
(238 B)
📄
mon_exit_for_cond-i.yaml
(195 B)
📄
mon_initialize-i.yaml
(293 B)
📄
mon_release-i.yaml
(264 B)
📄
mon_synchronize-i.yaml
(439 B)
📄
mon_try_enter-i.yaml
(346 B)
📄
new-c.yaml
(171 B)
📄
new_cond-i.yaml
(408 B)
📄
synchronize-i.yaml
(247 B)
📄
try_mon_enter-i.yaml
(249 B)
Editing: cdesc-MonitorMixin.yaml
--- !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:
Upload File
Create Folder