2012-05-25 17:20:48 -05:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
describe V8::C::Locker do
|
2012-06-05 08:00:04 -05:00
|
|
|
include ExplicitScoper
|
|
|
|
|
2012-05-25 17:20:48 -05:00
|
|
|
it "can lock and unlock the VM" do
|
|
|
|
V8::C::Locker::IsLocked().should be_false
|
|
|
|
V8::C::Locker() do
|
|
|
|
V8::C::Locker::IsLocked().should be_true
|
|
|
|
V8::C::Unlocker() do
|
|
|
|
V8::C::Locker::IsLocked().should be_false
|
|
|
|
end
|
|
|
|
end
|
|
|
|
V8::C::Locker::IsLocked().should be_false
|
|
|
|
end
|
|
|
|
|
|
|
|
it "properly unlocks if an exception is thrown inside a lock block" do
|
|
|
|
begin
|
|
|
|
V8::C::Locker() do
|
|
|
|
raise "boom!"
|
|
|
|
end
|
|
|
|
rescue
|
|
|
|
V8::C::Locker::IsLocked().should be_false
|
|
|
|
end
|
|
|
|
end
|
2012-06-05 08:00:04 -05:00
|
|
|
|
|
|
|
it "properly re-locks if an exception is thrown inside an un-lock block" do
|
|
|
|
V8::C::Locker() do
|
|
|
|
begin
|
|
|
|
V8::C::Unlocker() do
|
|
|
|
raise "boom!"
|
|
|
|
end
|
|
|
|
rescue
|
|
|
|
V8::C::Locker::IsLocked().should be_true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2012-05-25 17:20:48 -05:00
|
|
|
end
|