celluloid 0.12.0.pre3 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -191,7 +191,7 @@ module Celluloid
191
191
  def run
192
192
  begin
193
193
  while @running
194
- if message = @mailbox.receive(timeout)
194
+ if message = @mailbox.receive(timeout_interval)
195
195
  handle_message message
196
196
  else
197
197
  # No message indicates a timeout
@@ -277,7 +277,7 @@ module Celluloid
277
277
  end
278
278
 
279
279
  # How long to wait until the next timer fires
280
- def timeout
280
+ def timeout_interval
281
281
  i1 = @timers.wait_interval
282
282
  i2 = @receivers.wait_interval
283
283
 
@@ -2,5 +2,7 @@ require File.expand_path('../../../spec/support/example_actor_class', __FILE__)
2
2
  require File.expand_path('../../../spec/support/actor_examples', __FILE__)
3
3
  require File.expand_path('../../../spec/support/mailbox_examples', __FILE__)
4
4
 
5
- # Timer accuracy enforced by the tests (50ms)
6
- TIMER_QUANTUM = 0.05
5
+ module Celluloid
6
+ # Timer accuracy enforced by the tests (50ms)
7
+ TIMER_QUANTUM = 0.05
8
+ end
@@ -17,16 +17,15 @@ module Celluloid
17
17
 
18
18
  @thread = InternalPool.get do
19
19
  begin
20
- value = @resume_queue.pop
21
- raise value if value.is_a?(Task::TerminatedError)
20
+ unless @resume_queue.pop.is_a?(Task::TerminatedError)
21
+ @status = :running
22
+ Thread.current[:actor] = actor
23
+ Thread.current[:mailbox] = mailbox
24
+ Thread.current[:task] = self
25
+ actor.tasks << self
22
26
 
23
- @status = :running
24
- Thread.current[:actor] = actor
25
- Thread.current[:mailbox] = mailbox
26
- Thread.current[:task] = self
27
- actor.tasks << self
28
-
29
- yield
27
+ yield
28
+ end
30
29
  rescue Task::TerminatedError
31
30
  # Task was explicitly terminated
32
31
  ensure
@@ -1,4 +1,4 @@
1
1
  module Celluloid
2
- VERSION = '0.12.0.pre3'
2
+ VERSION = '0.12.0'
3
3
  def self.version; VERSION; end
4
4
  end
@@ -436,7 +436,7 @@ shared_context "a Celluloid Actor" do |included_module|
436
436
  end
437
437
 
438
438
  def eat_donuts
439
- sleep Q
439
+ sleep Celluloid::TIMER_QUANTUM
440
440
  @tasks << 'donuts'
441
441
  end
442
442
 
@@ -450,7 +450,7 @@ shared_context "a Celluloid Actor" do |included_module|
450
450
  actor = subject.new
451
451
  actor.eat_donuts!
452
452
  actor.drink_coffee!
453
- sleep Q * 2
453
+ sleep Celluloid::TIMER_QUANTUM * 2
454
454
  actor.tasks.should == ['donuts', 'coffee']
455
455
  end
456
456
  end
@@ -484,7 +484,7 @@ shared_context "a Celluloid Actor" do |included_module|
484
484
  started_at = Time.now
485
485
 
486
486
  receiver.receive(interval) { false }.should be_nil
487
- (Time.now - started_at).should be_within(Q).of interval
487
+ (Time.now - started_at).should be_within(Celluloid::TIMER_QUANTUM).of interval
488
488
  end
489
489
  end
490
490
 
@@ -526,7 +526,7 @@ shared_context "a Celluloid Actor" do |included_module|
526
526
 
527
527
  # Sleep long enough to ensure we're actually seeing behavior when asleep
528
528
  # but not so long as to delay the test suite unnecessarily
529
- interval = Q * 10
529
+ interval = Celluloid::TIMER_QUANTUM * 10
530
530
  started_at = Time.now
531
531
 
532
532
  future = actor.future(:do_sleep, interval)
@@ -534,49 +534,49 @@ shared_context "a Celluloid Actor" do |included_module|
534
534
  actor.should be_sleeping
535
535
 
536
536
  future.value
537
- (Time.now - started_at).should be_within(Q).of interval
537
+ (Time.now - started_at).should be_within(Celluloid::TIMER_QUANTUM).of interval
538
538
  end
539
539
 
540
540
  it "schedules timers which fire in the future" do
541
541
  actor = @klass.new
542
542
 
543
- interval = Q * 10
543
+ interval = Celluloid::TIMER_QUANTUM * 10
544
544
  started_at = Time.now
545
545
 
546
546
  timer = actor.fire_after(interval)
547
547
  actor.should_not be_fired
548
548
 
549
- sleep(interval + Q) # wonky! #/
549
+ sleep(interval + Celluloid::TIMER_QUANTUM) # wonky! #/
550
550
  actor.should be_fired
551
551
  end
552
552
 
553
553
  it "schedules recurring timers which fire in the future" do
554
554
  actor = @klass.new
555
555
 
556
- interval = Q * 10
556
+ interval = Celluloid::TIMER_QUANTUM * 10
557
557
  started_at = Time.now
558
558
 
559
559
  timer = actor.fire_every(interval)
560
560
  actor.fired.should be == 0
561
561
 
562
- sleep(interval + Q) # wonky! #/
562
+ sleep(interval + Celluloid::TIMER_QUANTUM) # wonky! #/
563
563
  actor.fired.should be == 1
564
564
 
565
- 2.times { sleep(interval + Q) } # wonky! #/
565
+ 2.times { sleep(interval + Celluloid::TIMER_QUANTUM) } # wonky! #/
566
566
  actor.fired.should be == 3
567
567
  end
568
568
 
569
569
  it "cancels timers before they fire" do
570
570
  actor = @klass.new
571
571
 
572
- interval = Q * 10
572
+ interval = Celluloid::TIMER_QUANTUM * 10
573
573
  started_at = Time.now
574
574
 
575
575
  timer = actor.fire_after(interval)
576
576
  actor.should_not be_fired
577
577
  timer.cancel
578
578
 
579
- sleep(interval + Q) # wonky! #/
579
+ sleep(interval + Celluloid::TIMER_QUANTUM) # wonky! #/
580
580
  actor.should_not be_fired
581
581
  end
582
582
  end
@@ -35,6 +35,6 @@ shared_context "a Celluloid Mailbox" do
35
35
  started_at = Time.now
36
36
 
37
37
  subject.receive(interval) { false }
38
- (Time.now - started_at).should be_within(TIMER_QUANTUM).of interval
38
+ (Time.now - started_at).should be_within(Celluloid::TIMER_QUANTUM).of interval
39
39
  end
40
40
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0.pre3
5
- prerelease: 7
4
+ version: 0.12.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tony Arcieri
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-03 00:00:00.000000000 Z
12
+ date: 2012-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: timers
16
- requirement: &70304033561060 !ruby/object:Gem::Requirement
16
+ requirement: &70127789999080 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70304033561060
24
+ version_requirements: *70127789999080
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70304033560520 !ruby/object:Gem::Requirement
27
+ requirement: &70127789997960 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70304033560520
35
+ version_requirements: *70127789997960
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70304033559840 !ruby/object:Gem::Requirement
38
+ requirement: &70127789997400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70304033559840
46
+ version_requirements: *70127789997400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: benchmark_suite
49
- requirement: &70304033559280 !ruby/object:Gem::Requirement
49
+ requirement: &70127789996720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70304033559280
57
+ version_requirements: *70127789996720
58
58
  description: Celluloid enables people to build concurrent programs out of concurrent
59
59
  objects just as easily as they build sequential programs out of sequential objects
60
60
  email:
@@ -123,8 +123,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  version: 1.3.6
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 1.8.17
126
+ rubygems_version: 1.8.10
127
127
  signing_key:
128
128
  specification_version: 3
129
129
  summary: Actor-based concurrent object framework for Ruby
130
130
  test_files: []
131
+ has_rdoc: