Initial attempt at Monitor class.
This commit is contained in:
1 parent
d8eba3cb25
commit
1eff930480
4 files changed
+67
-1
No files matched your search
@@ -0,0 +1,34 @@
|
||||
require 'spec_helper'
|
||||
require 'process_shared'
|
||||
|
||||
module ProcessShared
|
||||
describe Monitor do
|
||||
|
||||
include LockBehavior
|
||||
|
||||
before :each do
|
||||
@lock = Monitor.new
|
||||
end
|
||||
|
||||
it 'raises exception when unlocked by other process' do
|
||||
pid = Kernel.fork do
|
||||
@lock.lock
|
||||
sleep 0.2
|
||||
@lock.unlock
|
||||
Kernel.exit!
|
||||
end
|
||||
|
||||
sleep 0.1
|
||||
proc { @lock.unlock }.must_raise(ProcessError)
|
||||
|
||||
::Process.wait(pid)
|
||||
end
|
||||
|
||||
it 'raises nothing with nested lock' do
|
||||
@lock.lock
|
||||
@lock.lock
|
||||
@lock.unlock
|
||||
@lock.unlock
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user