e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksarequire 'spec_helper'
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa # use a different key for each example to be safe
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa before { |example| @key = example.description.parameterize }
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa it 'is not locked before another thread uses the key' do
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa it 'is locked while another thread uses the key' do
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa skip 'This hangs the test suite because of celluloid.'
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa process_lock = ForkBreak::Process.new do |breakpoints|
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa process_check = ForkBreak::Process.new do |_breakpoints|
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa semaphore_locked = Semaphore.locked?(@key, expiration: 1)
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa it 'is not locked after another thread uses the key' do
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa it 'is not locked after using lock and unlock' do
e8ec59dda8f903e81cb5cceaef93d20a0812fc77Eugen Kuksa it 'returns the block result on "exclusively"' do