celluloid 0.12.0 → 0.13.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.
Files changed (40) hide show
  1. data/README.md +36 -23
  2. data/lib/celluloid/actor.rb +74 -47
  3. data/lib/celluloid/autostart.rb +16 -0
  4. data/lib/celluloid/calls.rb +52 -52
  5. data/lib/celluloid/condition.rb +70 -0
  6. data/lib/celluloid/core_ext.rb +1 -1
  7. data/lib/celluloid/cpu_counter.rb +7 -1
  8. data/lib/celluloid/fsm.rb +49 -16
  9. data/lib/celluloid/future.rb +5 -2
  10. data/lib/celluloid/internal_pool.rb +62 -44
  11. data/lib/celluloid/legacy.rb +46 -0
  12. data/lib/celluloid/links.rb +0 -5
  13. data/lib/celluloid/logger.rb +14 -4
  14. data/lib/celluloid/logging/incident.rb +21 -0
  15. data/lib/celluloid/logging/incident_logger.rb +129 -0
  16. data/lib/celluloid/logging/incident_reporter.rb +48 -0
  17. data/lib/celluloid/logging/log_event.rb +20 -0
  18. data/lib/celluloid/logging/ring_buffer.rb +65 -0
  19. data/lib/celluloid/logging.rb +5 -0
  20. data/lib/celluloid/mailbox.rb +2 -1
  21. data/lib/celluloid/method.rb +5 -0
  22. data/lib/celluloid/pool_manager.rb +21 -8
  23. data/lib/celluloid/proxies/actor_proxy.rb +11 -11
  24. data/lib/celluloid/proxies/async_proxy.rb +5 -1
  25. data/lib/celluloid/responses.rb +8 -6
  26. data/lib/celluloid/stack_dump.rb +94 -0
  27. data/lib/celluloid/supervision_group.rb +5 -3
  28. data/lib/celluloid/system_events.rb +11 -0
  29. data/lib/celluloid/tasks/task_fiber.rb +17 -9
  30. data/lib/celluloid/tasks/task_thread.rb +24 -14
  31. data/lib/celluloid/tasks.rb +59 -0
  32. data/lib/celluloid/thread_handle.rb +10 -1
  33. data/lib/celluloid/version.rb +1 -1
  34. data/lib/celluloid.rb +146 -87
  35. data/spec/support/actor_examples.rb +242 -114
  36. data/spec/support/example_actor_class.rb +17 -5
  37. data/spec/support/task_examples.rb +11 -2
  38. metadata +58 -14
  39. data/lib/celluloid/boot.rb +0 -9
  40. data/lib/celluloid/task.rb +0 -22
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-04 00:00:00.000000000 Z
12
+ date: 2013-03-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: timers
16
- requirement: &70127789999080 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70127789999080
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.0.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rake
27
- requirement: &70127789997960 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70127789997960
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rspec
38
- requirement: &70127789997400 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,31 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70127789997400
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard-rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
47
78
  - !ruby/object:Gem::Dependency
48
79
  name: benchmark_suite
49
- requirement: &70127789996720 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
50
81
  none: false
51
82
  requirements:
52
83
  - - ! '>='
@@ -54,7 +85,12 @@ dependencies:
54
85
  version: '0'
55
86
  type: :development
56
87
  prerelease: false
57
- version_requirements: *70127789996720
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
58
94
  description: Celluloid enables people to build concurrent programs out of concurrent
59
95
  objects just as easily as they build sequential programs out of sequential objects
60
96
  email:
@@ -65,16 +101,24 @@ extra_rdoc_files: []
65
101
  files:
66
102
  - README.md
67
103
  - lib/celluloid/actor.rb
68
- - lib/celluloid/boot.rb
104
+ - lib/celluloid/autostart.rb
69
105
  - lib/celluloid/calls.rb
106
+ - lib/celluloid/condition.rb
70
107
  - lib/celluloid/core_ext.rb
71
108
  - lib/celluloid/cpu_counter.rb
72
109
  - lib/celluloid/fiber.rb
73
110
  - lib/celluloid/fsm.rb
74
111
  - lib/celluloid/future.rb
75
112
  - lib/celluloid/internal_pool.rb
113
+ - lib/celluloid/legacy.rb
76
114
  - lib/celluloid/links.rb
77
115
  - lib/celluloid/logger.rb
116
+ - lib/celluloid/logging/incident.rb
117
+ - lib/celluloid/logging/incident_logger.rb
118
+ - lib/celluloid/logging/incident_reporter.rb
119
+ - lib/celluloid/logging/log_event.rb
120
+ - lib/celluloid/logging/ring_buffer.rb
121
+ - lib/celluloid/logging.rb
78
122
  - lib/celluloid/mailbox.rb
79
123
  - lib/celluloid/method.rb
80
124
  - lib/celluloid/notifications.rb
@@ -88,12 +132,13 @@ files:
88
132
  - lib/celluloid/responses.rb
89
133
  - lib/celluloid/rspec.rb
90
134
  - lib/celluloid/signals.rb
135
+ - lib/celluloid/stack_dump.rb
91
136
  - lib/celluloid/supervision_group.rb
92
137
  - lib/celluloid/supervisor.rb
93
138
  - lib/celluloid/system_events.rb
94
- - lib/celluloid/task.rb
95
139
  - lib/celluloid/tasks/task_fiber.rb
96
140
  - lib/celluloid/tasks/task_thread.rb
141
+ - lib/celluloid/tasks.rb
97
142
  - lib/celluloid/thread_handle.rb
98
143
  - lib/celluloid/uuid.rb
99
144
  - lib/celluloid/version.rb
@@ -123,9 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
168
  version: 1.3.6
124
169
  requirements: []
125
170
  rubyforge_project:
126
- rubygems_version: 1.8.10
171
+ rubygems_version: 1.8.23
127
172
  signing_key:
128
173
  specification_version: 3
129
174
  summary: Actor-based concurrent object framework for Ruby
130
175
  test_files: []
131
- has_rdoc:
@@ -1,9 +0,0 @@
1
- # Things to run after Celluloid is fully loaded
2
-
3
- # Configure default systemwide settings
4
- Celluloid.logger = Logger.new STDERR
5
- Celluloid.task_class = Celluloid::TaskFiber
6
-
7
- # Launch the notifications fanout actor
8
- # FIXME: We should set up the supervision hierarchy here
9
- Celluloid::Notifications::Fanout.supervise_as :notifications_fanout
@@ -1,22 +0,0 @@
1
- require 'celluloid/tasks/task_fiber'
2
- require 'celluloid/tasks/task_thread'
3
-
4
- module Celluloid
5
- # Trying to resume a dead task
6
- class DeadTaskError < StandardError; end
7
-
8
- # Tasks are interruptable/resumable execution contexts used to run methods
9
- module Task
10
- class TerminatedError < StandardError; end # kill a running task
11
-
12
- # Obtain the current task
13
- def self.current
14
- Thread.current[:task] or raise "not within a task context"
15
- end
16
-
17
- # Suspend the running task, deferring to the scheduler
18
- def self.suspend(status)
19
- Task.current.suspend(status)
20
- end
21
- end
22
- end