Sha256: 88b3b48bed4b6f93fea585844fffbadc165b8e3acab7815e5a316eb3a6b1d761

Contents?: true

Size: 874 Bytes

Versions: 5

Compression:

Stored size: 874 Bytes

Contents

#
# Specifying rufus-scheduler
#
# Sat Mar 21 17:36:36 JST 2009
#

require File.join(File.dirname(__FILE__), 'spec_base')


describe SCHEDULER_CLASS do

  before(:each) do
    @s = start_scheduler
  end
  after(:each) do
    stop_scheduler(@s)
  end

  JOB = Proc.new do |x|
    begin
      $var << "a#{x}"
      sleep 0.500
      $var << "b#{x}"
    rescue Exception => e
      puts '=' * 80
      p e
      puts '=' * 80
    end
  end

  it "doesn't block when :blocking => nil" do

    $var = []
    @s.in('1s') { JOB.call(1) }
    @s.in('1s') { JOB.call(2) }

    sleep 5.0

    [ %w{ a1 a2 b1 b2 }, %w{ a1 a2 b2 b1 } ].should include($var)
  end

  it 'blocks when :blocking => true' do

    $var = []
    @s.in('1s', :blocking => true) { JOB.call(8) }
    @s.in('1s', :blocking => true) { JOB.call(9) }

    sleep 4.5

    $var.should == %w[ a8 b8 a9 b9 ]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rufus-scheduler-2.0.11 spec/blocking_spec.rb
rufus-scheduler-2.0.10 spec/blocking_spec.rb
rufus-scheduler-2.0.9 spec/blocking_spec.rb
rufus-scheduler-2.0.8 spec/blocking_spec.rb
rufus-scheduler-2.0.7 spec/blocking_spec.rb