celluloid 0.17.2 → 0.18.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 (174) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +340 -75
  3. data/CONDUCT.md +13 -0
  4. data/CONTRIBUTING.md +39 -0
  5. data/LICENSE.txt +1 -1
  6. data/README.md +54 -150
  7. data/REFACTOR.md +1 -0
  8. data/architecture.md +120 -0
  9. data/examples/basic_usage.rb +1 -1
  10. data/examples/configurations.rb +78 -0
  11. data/examples/futures.rb +1 -1
  12. data/examples/ring.rb +5 -4
  13. data/examples/simple_pmap.rb +1 -1
  14. data/examples/stack.rb +2 -2
  15. data/examples/supervisors_and_registry.rb +82 -0
  16. data/examples/timers.rb +2 -2
  17. data/lib/celluloid.rb +78 -65
  18. data/lib/celluloid/actor.rb +27 -17
  19. data/lib/celluloid/actor/system.rb +13 -29
  20. data/lib/celluloid/autostart.rb +6 -1
  21. data/lib/celluloid/call/async.rb +2 -0
  22. data/lib/celluloid/call/sync.rb +10 -3
  23. data/lib/celluloid/calls.rb +13 -13
  24. data/lib/celluloid/cell.rb +5 -9
  25. data/lib/celluloid/condition.rb +3 -3
  26. data/lib/celluloid/core_ext.rb +0 -2
  27. data/lib/celluloid/debug.rb +3 -0
  28. data/lib/celluloid/exceptions.rb +2 -2
  29. data/lib/celluloid/future.rb +8 -10
  30. data/lib/celluloid/group.rb +16 -6
  31. data/lib/celluloid/group/pool.rb +1 -3
  32. data/lib/celluloid/group/spawner.rb +2 -6
  33. data/lib/celluloid/internals/call_chain.rb +15 -0
  34. data/lib/celluloid/internals/cpu_counter.rb +62 -0
  35. data/lib/celluloid/internals/handlers.rb +42 -0
  36. data/lib/celluloid/internals/links.rb +38 -0
  37. data/lib/celluloid/internals/logger.rb +104 -0
  38. data/lib/celluloid/internals/method.rb +34 -0
  39. data/lib/celluloid/internals/properties.rb +32 -0
  40. data/lib/celluloid/internals/receivers.rb +64 -0
  41. data/lib/celluloid/internals/registry.rb +102 -0
  42. data/lib/celluloid/internals/responses.rb +46 -0
  43. data/lib/celluloid/internals/signals.rb +24 -0
  44. data/lib/celluloid/internals/stack.rb +74 -0
  45. data/lib/celluloid/internals/stack/dump.rb +12 -0
  46. data/lib/celluloid/internals/stack/states.rb +72 -0
  47. data/lib/celluloid/internals/stack/summary.rb +12 -0
  48. data/lib/celluloid/internals/task_set.rb +51 -0
  49. data/lib/celluloid/internals/thread_handle.rb +52 -0
  50. data/lib/celluloid/internals/uuid.rb +40 -0
  51. data/lib/celluloid/logging/incident.rb +21 -0
  52. data/lib/celluloid/logging/incident_logger.rb +147 -0
  53. data/lib/celluloid/logging/incident_reporter.rb +49 -0
  54. data/lib/celluloid/logging/log_event.rb +20 -0
  55. data/lib/celluloid/logging/ring_buffer.rb +64 -0
  56. data/lib/celluloid/mailbox.rb +22 -9
  57. data/lib/celluloid/mailbox/evented.rb +13 -7
  58. data/lib/celluloid/notifications.rb +95 -0
  59. data/lib/celluloid/pool.rb +6 -0
  60. data/lib/celluloid/probe.rb +81 -0
  61. data/lib/celluloid/proxy/abstract.rb +38 -7
  62. data/lib/celluloid/proxy/actor.rb +0 -5
  63. data/lib/celluloid/proxy/async.rb +2 -18
  64. data/lib/celluloid/proxy/block.rb +2 -1
  65. data/lib/celluloid/proxy/cell.rb +1 -7
  66. data/lib/celluloid/proxy/future.rb +3 -21
  67. data/lib/celluloid/proxy/sync.rb +2 -20
  68. data/lib/celluloid/rspec.rb +22 -34
  69. data/lib/celluloid/supervision.rb +17 -0
  70. data/lib/celluloid/supervision/configuration.rb +169 -0
  71. data/lib/celluloid/supervision/configuration/injections.rb +8 -0
  72. data/lib/celluloid/supervision/configuration/instance.rb +113 -0
  73. data/lib/celluloid/supervision/constants.rb +123 -0
  74. data/lib/celluloid/supervision/container.rb +144 -0
  75. data/lib/celluloid/supervision/container/behavior.rb +89 -0
  76. data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
  77. data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
  78. data/lib/celluloid/supervision/container/injections.rb +8 -0
  79. data/lib/celluloid/supervision/container/instance.rb +116 -0
  80. data/lib/celluloid/supervision/container/pool.rb +210 -0
  81. data/lib/celluloid/supervision/service.rb +27 -0
  82. data/lib/celluloid/supervision/supervise.rb +34 -0
  83. data/lib/celluloid/supervision/validation.rb +40 -0
  84. data/lib/celluloid/supervision/version.rb +5 -0
  85. data/lib/celluloid/system_events.rb +10 -3
  86. data/lib/celluloid/task.rb +25 -12
  87. data/lib/celluloid/task/fibered.rb +6 -2
  88. data/lib/celluloid/task/threaded.rb +3 -3
  89. data/lib/celluloid/test.rb +5 -2
  90. data/lib/celluloid/thread.rb +0 -2
  91. data/lib/celluloid/version.rb +1 -1
  92. data/spec/celluloid/block_spec.rb +29 -32
  93. data/spec/celluloid/calls_spec.rb +5 -15
  94. data/spec/celluloid/future_spec.rb +7 -1
  95. data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
  96. data/spec/celluloid/internals/links_spec.rb +43 -0
  97. data/spec/celluloid/internals/properties_spec.rb +40 -0
  98. data/spec/celluloid/internals/registry_spec.rb +62 -0
  99. data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
  100. data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
  101. data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
  102. data/spec/celluloid/internals/uuid_spec.rb +9 -0
  103. data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
  104. data/spec/celluloid/mailbox/evented_spec.rb +21 -19
  105. data/spec/celluloid/misc/leak_spec.rb +3 -4
  106. data/spec/celluloid/notifications_spec.rb +140 -0
  107. data/spec/celluloid/probe_spec.rb +102 -0
  108. data/spec/celluloid/proxy_spec.rb +33 -0
  109. data/spec/celluloid/supervision/behavior_spec.rb +74 -0
  110. data/spec/celluloid/supervision/configuration_spec.rb +181 -0
  111. data/spec/celluloid/supervision/container_spec.rb +72 -0
  112. data/spec/celluloid/supervision/instance_spec.rb +13 -0
  113. data/spec/celluloid/supervision/root_spec.rb +28 -0
  114. data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
  115. data/spec/celluloid/task/fibered_spec.rb +1 -3
  116. data/spec/celluloid/task/threaded_spec.rb +1 -3
  117. data/spec/shared/actor_examples.rb +65 -29
  118. data/spec/shared/group_examples.rb +2 -2
  119. data/spec/shared/mailbox_examples.rb +1 -1
  120. data/spec/shared/stack_examples.rb +87 -0
  121. data/spec/shared/task_examples.rb +2 -3
  122. data/spec/spec_helper.rb +2 -4
  123. data/spec/support/configure_rspec.rb +3 -4
  124. data/spec/support/coverage.rb +2 -4
  125. data/spec/support/crash_checking.rb +2 -2
  126. data/spec/support/examples/actor_class.rb +3 -8
  127. data/spec/support/examples/call_class.rb +2 -2
  128. data/spec/support/examples/container_class.rb +35 -0
  129. data/spec/support/examples/evented_mailbox_class.rb +1 -2
  130. data/spec/support/examples/stack_classes.rb +58 -0
  131. data/spec/support/examples/stack_methods.rb +23 -0
  132. data/spec/support/examples/subordinate_class.rb +19 -0
  133. data/spec/support/logging.rb +3 -34
  134. data/spec/support/loose_threads.rb +3 -24
  135. data/spec/support/reset_class_variables.rb +5 -1
  136. data/spec/support/stubbing.rb +1 -1
  137. metadata +93 -291
  138. data/culture/CONDUCT.md +0 -28
  139. data/culture/Gemfile +0 -9
  140. data/culture/LICENSE.txt +0 -22
  141. data/culture/README.md +0 -22
  142. data/culture/Rakefile +0 -5
  143. data/culture/SYNC.md +0 -70
  144. data/culture/celluloid-culture.gemspec +0 -18
  145. data/culture/gems/README.md +0 -39
  146. data/culture/gems/dependencies.yml +0 -85
  147. data/culture/gems/loader.rb +0 -101
  148. data/culture/rubocop/README.md +0 -38
  149. data/culture/rubocop/lint.yml +0 -8
  150. data/culture/rubocop/metrics.yml +0 -15
  151. data/culture/rubocop/perf.yml +0 -0
  152. data/culture/rubocop/rubocop.yml +0 -5
  153. data/culture/rubocop/style.yml +0 -57
  154. data/culture/spec/gems_spec.rb +0 -2
  155. data/culture/spec/spec_helper.rb +0 -0
  156. data/culture/spec/sync_spec.rb +0 -2
  157. data/culture/sync.rb +0 -56
  158. data/culture/tasks/rspec.rake +0 -5
  159. data/culture/tasks/rubocop.rake +0 -2
  160. data/lib/celluloid/actor/manager.rb +0 -7
  161. data/lib/celluloid/backported.rb +0 -2
  162. data/lib/celluloid/current.rb +0 -2
  163. data/lib/celluloid/deprecate.rb +0 -21
  164. data/lib/celluloid/fiber.rb +0 -32
  165. data/lib/celluloid/managed.rb +0 -3
  166. data/lib/celluloid/notices.rb +0 -15
  167. data/spec/celluloid/actor/manager_spec.rb +0 -0
  168. data/spec/deprecate/actor_system_spec.rb +0 -72
  169. data/spec/deprecate/block_spec.rb +0 -52
  170. data/spec/deprecate/calls_spec.rb +0 -39
  171. data/spec/deprecate/evented_mailbox_spec.rb +0 -34
  172. data/spec/deprecate/future_spec.rb +0 -32
  173. data/spec/deprecate/internal_pool_spec.rb +0 -4
  174. data/spec/support/env.rb +0 -21
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+ $LOAD_PATH.push File.expand_path("../lib", __dir__)
4
4
  require "celluloid/autostart"
5
5
  require "digest/sha2"
6
6
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+ $LOAD_PATH.push File.expand_path("../lib", __dir__)
4
4
  require "celluloid/autostart"
5
5
 
6
6
  class Ring
@@ -28,7 +28,7 @@ class Ring
28
28
 
29
29
  # Go around the ring the given number of times
30
30
  def run(n)
31
- fail ArgumentError, "I can't go around a negative number of times" if n < 0
31
+ raise ArgumentError, "I can't go around a negative number of times" if n < 0
32
32
 
33
33
  async.around n
34
34
  wait :done
@@ -48,14 +48,15 @@ if $PROGRAM_NAME == __FILE__
48
48
  require "benchmark"
49
49
  SIZE = 512
50
50
  TIMES = 10
51
+ ring = nil
51
52
 
52
53
  puts "*** Creating a #{SIZE} node ring..."
53
54
  puts Benchmark.measure {
54
- $ring = Ring.new(SIZE)
55
+ ring = Ring.new(SIZE)
55
56
  }
56
57
 
57
58
  puts "*** Sending a message around #{TIMES} times"
58
59
  puts Benchmark.measure {
59
- $ring.run(TIMES)
60
+ ring.run(TIMES)
60
61
  }
61
62
  end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+ $LOAD_PATH.push File.expand_path("../lib", __dir__)
4
4
  require "celluloid/autostart"
5
5
 
6
6
  module Enumerable
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
3
+ $LOAD_PATH.push File.expand_path("../lib", __dir__)
4
4
  require "celluloid/autostart"
5
5
 
6
6
  # This example builds on basic_usage.rb to show two things about #async: the
@@ -17,7 +17,7 @@ class Stack
17
17
  def push(x)
18
18
  @ary.push x
19
19
  end
20
- alias_method :<<, :push
20
+ alias << push
21
21
 
22
22
  def pop
23
23
  @ary.pop
@@ -0,0 +1,82 @@
1
+ require "celluloid/autostart"
2
+
3
+ class MyActor
4
+ include Celluloid
5
+ attr_reader :state
6
+
7
+ def initialize
8
+ @state = :clean
9
+ end
10
+
11
+ def broken_method
12
+ @state = :dirty
13
+ oh_crap_im_totally_broken
14
+ end
15
+ end
16
+
17
+ #
18
+ # Using the Supervisor API directly
19
+ #
20
+
21
+ puts "*** Demonstrating using the Supervisor API directly"
22
+
23
+ # Calling supervise directly returns the supervisor
24
+ supervisor = MyActor.supervise
25
+
26
+ # We can get to the current version of an actor by calling
27
+ # Celluloid::Supervisor#actors. This prints ':clean'
28
+ puts "We should be in a clean state now: #{supervisor.actors.first.state}"
29
+ puts "Brace yourself for a crash message..."
30
+
31
+ # If we call a method that crashes an actor, it will print out a debug message,
32
+ # then restart an actor in a clean state
33
+ begin
34
+ supervisor.actors.first.broken_method
35
+ rescue NameError
36
+ puts "Uhoh, we crashed the actor..."
37
+ end
38
+
39
+ puts "The supervisor should automatically restart the actor"
40
+
41
+ # By now we'll be back in a :clean state!
42
+ begin
43
+ puts "We should now be in a clean state again: #{supervisor.actors.first.state}"
44
+ rescue Celluloid::DeadActorError
45
+ # Perhaps we got ahold of the actor before the supervisor restarted it
46
+ retry
47
+ end
48
+
49
+ #
50
+ # Using the Actor Registry
51
+ # This is the preferred approach and will make using DCell easier
52
+ #
53
+
54
+ puts "*** Demonstrating using the actor registry"
55
+
56
+ # We can give our actor a name and thus avoid interacting with the supervisor
57
+ MyActor.supervise as: :my_actor
58
+
59
+ # Same as above, just getting the actor from a different place
60
+ puts "We should be in a clean state now: #{Celluloid::Actor[:my_actor].state}"
61
+ puts "Brace yourself for a crash message..."
62
+
63
+ # If we call a method that crashes an actor, it will print out a debug message,
64
+ # then restart an actor in a clean state
65
+ begin
66
+ Celluloid::Actor[:my_actor].broken_method
67
+ rescue NameError
68
+ puts "Uhoh, we crashed the actor..."
69
+ end
70
+
71
+ puts "The supervisor should automatically restart the actor"
72
+
73
+ # By now we'll be back in a :clean state!
74
+ begin
75
+ puts "We should now be in a clean state again: #{Celluloid::Actor[:my_actor].state}"
76
+ rescue Celluloid::DeadActorError
77
+ # Perhaps we got ahold of the actor before the supervisor restarted it
78
+ # Don't want to catch Celluloid::DeadActorError all over the place? If this
79
+ # code were in a supervised Celluloid::Actor itself, the supervisor would
80
+ # catch Celluloid::DeadActorError and automatically restart this actor
81
+ retry
82
+ end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.push File.expand_path("../../lib", __FILE__)
4
- require "celluloid/current"
3
+ $LOAD_PATH.push File.expand_path("../lib", __dir__)
4
+ require "celluloid"
5
5
 
6
6
  class TimerExample
7
7
  include Celluloid
@@ -1,17 +1,17 @@
1
+ # TODO: eliminate use of global variables
2
+ require "English"
3
+
1
4
  require "logger"
2
- require "thread"
3
- require "timeout"
4
5
  require "set"
6
+ require "timeout"
5
7
 
8
+ # !!! DO NOT INTRODUCE ADDITIONAL GLOBAL VARIABLES !!!
9
+ # rubocop:disable Style/GlobalVars
6
10
  $CELLULOID_DEBUG = false
7
- $CELLULOID_MANAGED ||= false
11
+ $CELLULOID_MONITORING = false
12
+ # rubocop:enable Style/GlobalVars
8
13
 
9
14
  require "celluloid/version"
10
- require "celluloid/notices"
11
-
12
- $CELLULOID_BACKPORTED = false if defined?(CELLULOID_FUTURE) && CELLULOID_FUTURE
13
- $CELLULOID_BACKPORTED = (ENV["CELLULOID_BACKPORTED"] != "false") unless defined?($CELLULOID_BACKPORTED)
14
- Celluloid::Notices.backported if $CELLULOID_BACKPORTED
15
15
 
16
16
  module Celluloid
17
17
  # Expose all instance methods as singleton methods
@@ -21,7 +21,7 @@ module Celluloid
21
21
  LINKING_TIMEOUT = 5
22
22
 
23
23
  # Warning message added to Celluloid objects accessed outside their actors
24
- BARE_OBJECT_WARNING_MESSAGE = "WARNING: BARE CELLULOID OBJECT "
24
+ BARE_OBJECT_WARNING_MESSAGE = "WARNING: BARE CELLULOID OBJECT ".freeze
25
25
 
26
26
  class << self
27
27
  attr_writer :actor_system # Default Actor System
@@ -33,9 +33,11 @@ module Celluloid
33
33
 
34
34
  def actor_system
35
35
  if Thread.current.celluloid?
36
- Thread.current[:celluloid_actor_system] || fail(Error, "actor system not running")
36
+ Thread.current[:celluloid_actor_system] || raise(Error, "actor system not running")
37
37
  else
38
- Thread.current[:celluloid_actor_system] || @actor_system || fail(Error, "Celluloid is not yet started; use Celluloid.boot")
38
+ Thread.current[:celluloid_actor_system] ||
39
+ @actor_system ||
40
+ raise(Error, "Celluloid is not yet started; use Celluloid.boot")
39
41
  end
40
42
  end
41
43
 
@@ -54,15 +56,23 @@ module Celluloid
54
56
  klass.property :exclusive_actor, default: false
55
57
  klass.property :exclusive_methods, multi: true
56
58
  klass.property :execute_block_on_receiver,
57
- default: [:after, :every, :receive],
59
+ default: %i[after every receive],
58
60
  multi: true
59
61
 
60
62
  klass.property :finalizer
61
63
  klass.property :exit_handler_name
62
64
 
63
65
  singleton = class << klass; self; end
64
- singleton.send(:remove_method, :trap_exit) rescue nil
65
- singleton.send(:remove_method, :exclusive) rescue nil
66
+ begin
67
+ singleton.send(:remove_method, :trap_exit)
68
+ rescue
69
+ nil
70
+ end
71
+ begin
72
+ singleton.send(:remove_method, :exclusive)
73
+ rescue
74
+ nil
75
+ end
66
76
 
67
77
  singleton.send(:define_method, :trap_exit) do |*args|
68
78
  exit_handler_name(*args)
@@ -96,20 +106,20 @@ module Celluloid
96
106
  def cores
97
107
  Internals::CPUCounter.cores
98
108
  end
99
- alias_method :cpus, :cores
100
- alias_method :ncpus, :cores
109
+ alias cpus cores
110
+ alias ncpus cores
101
111
 
102
112
  # Perform a stack dump of all actors to the given output object
103
113
  def stack_dump(output = STDERR)
104
114
  actor_system.stack_dump.print(output)
105
115
  end
106
- alias_method :dump, :stack_dump
116
+ alias dump stack_dump
107
117
 
108
118
  # Perform a stack summary of all actors to the given output object
109
119
  def stack_summary(output = STDERR)
110
120
  actor_system.stack_summary.print(output)
111
121
  end
112
- alias_method :summarize, :stack_summary
122
+ alias summarize stack_summary
113
123
 
114
124
  def public_registry
115
125
  actor_system.public_registry
@@ -148,7 +158,7 @@ module Celluloid
148
158
  end
149
159
 
150
160
  def init
151
- @actor_system = Actor::System.new
161
+ @actor_system ||= Actor::System.new
152
162
  end
153
163
 
154
164
  def start
@@ -157,24 +167,16 @@ module Celluloid
157
167
 
158
168
  def running?
159
169
  actor_system && actor_system.running?
170
+ rescue Error
171
+ false
160
172
  end
161
173
 
174
+ # de TODO Anticipate outside process finalizer that would by-pass this.
162
175
  def register_shutdown
163
176
  return if defined?(@shutdown_registered) && @shutdown_registered
164
-
165
- # Terminate all actors at exit
177
+ # Terminate all actors at exit, unless the exit is abnormal.
166
178
  at_exit do
167
- sleep 0.126 # hax grace period for unnaturally terminating actors
168
- # allows "reason" in exit_handler to resolve before being destroyed
169
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION >= "1.9"
170
- # workaround for MRI bug losing exit status in at_exit block
171
- # http://bugs.ruby-lang.org/issues/5218
172
- exit_status = $ERROR_INFO.status if $ERROR_INFO.is_a?(SystemExit)
173
- Celluloid.shutdown
174
- exit exit_status if exit_status
175
- else
176
- Celluloid.shutdown
177
- end
179
+ Celluloid.shutdown unless $ERROR_INFO
178
180
  end
179
181
  @shutdown_registered = true
180
182
  end
@@ -182,6 +184,7 @@ module Celluloid
182
184
  # Shut down all running actors
183
185
  def shutdown
184
186
  actor_system.shutdown
187
+ @actor_system = nil
185
188
  end
186
189
 
187
190
  def version
@@ -196,18 +199,18 @@ module Celluloid
196
199
  proxy._send_(:initialize, *args, &block)
197
200
  proxy
198
201
  end
199
- alias_method :spawn, :new
202
+ alias spawn new
200
203
 
201
204
  # Create a new actor and link to the current one
202
205
  def new_link(*args, &block)
203
- fail NotActorError, "can't link outside actor context" unless Celluloid.actor?
206
+ raise NotActorError, "can't link outside actor context" unless Celluloid.actor?
204
207
 
205
208
  proxy = Cell.new(allocate, behavior_options, actor_options).proxy
206
209
  Actor.link(proxy)
207
210
  proxy._send_(:initialize, *args, &block)
208
211
  proxy
209
212
  end
210
- alias_method :spawn_link, :new_link
213
+ alias spawn_link new_link
211
214
 
212
215
  # Run an actor in the foreground
213
216
  def run(*args, &block)
@@ -225,7 +228,7 @@ module Celluloid
225
228
  mailbox_class: mailbox_class,
226
229
  mailbox_size: mailbox_size,
227
230
  task_class: task_class,
228
- exclusive: exclusive_actor,
231
+ exclusive: exclusive_actor
229
232
  }
230
233
  end
231
234
 
@@ -235,7 +238,7 @@ module Celluloid
235
238
  exclusive_methods: exclusive_methods,
236
239
  exit_handler_name: exit_handler_name,
237
240
  finalizer: finalizer,
238
- receiver_block_executions: execute_block_on_receiver,
241
+ receiver_block_executions: execute_block_on_receiver
239
242
  }
240
243
  end
241
244
 
@@ -263,7 +266,7 @@ module Celluloid
263
266
  def bare_object
264
267
  self
265
268
  end
266
- alias_method :wrapped_object, :bare_object
269
+ alias wrapped_object bare_object
267
270
 
268
271
  # Are we being invoked in a different thread from our owner?
269
272
  def leaked?
@@ -279,18 +282,18 @@ module Celluloid
279
282
  def registered_name
280
283
  Actor.registered_name
281
284
  end
282
- alias_method :name, :registered_name
285
+ alias name registered_name
283
286
 
284
287
  def inspect
285
288
  return "..." if Celluloid.detect_recursion
286
289
 
287
290
  str = "#<"
288
291
 
289
- if leaked?
290
- str << Celluloid::BARE_OBJECT_WARNING_MESSAGE
291
- else
292
- str << "Celluloid::Proxy::Cell"
293
- end
292
+ str << if leaked?
293
+ Celluloid::BARE_OBJECT_WARNING_MESSAGE
294
+ else
295
+ "Celluloid::Proxy::Cell"
296
+ end
294
297
 
295
298
  str << "(#{self.class}:0x#{object_id.to_s(16)})"
296
299
  str << " " unless instance_variables.empty?
@@ -318,9 +321,10 @@ module Celluloid
318
321
  cause = case cause
319
322
  when String then RuntimeError.new(cause)
320
323
  when Exception then cause
321
- else fail TypeError, "Exception object/String expected, but #{cause.class} received"
322
- end
323
- fail AbortError.new(cause)
324
+ else raise TypeError, "Exception object/String expected, but #{cause.class} received"
325
+ end
326
+
327
+ raise AbortError, cause
324
328
  end
325
329
 
326
330
  # Terminate this actor
@@ -457,13 +461,15 @@ module Celluloid
457
461
  end
458
462
  end
459
463
 
460
- if defined?(JRUBY_VERSION) && JRUBY_VERSION == "1.7.3"
461
- fail "Celluloid is broken on JRuby 1.7.3. Please upgrade to 1.7.4+"
462
- end
463
-
464
464
  require "celluloid/exceptions"
465
465
 
466
- Celluloid.logger = Logger.new(STDERR)
466
+ Celluloid.logger = Logger.new(STDERR).tap do |logger|
467
+ # !!! DO NOT INTRODUCE ADDITIONAL GLOBAL VARIABLES !!!
468
+ # rubocop:disable Style/GlobalVars
469
+ logger.level = Logger::INFO unless $CELLULOID_DEBUG
470
+ # rubocop:enable Style/GlobalVars
471
+ end
472
+
467
473
  Celluloid.shutdown_timeout = 10
468
474
  Celluloid.log_actor_crashes = true
469
475
 
@@ -480,8 +486,6 @@ require "celluloid/proxies"
480
486
  require "celluloid/mailbox"
481
487
  require "celluloid/mailbox/evented"
482
488
 
483
- require "celluloid/essentials"
484
-
485
489
  require "celluloid/group"
486
490
  require "celluloid/group/spawner"
487
491
  require "celluloid/group/pool" # TODO: Find way to only load this if being used.
@@ -494,13 +498,27 @@ require "celluloid/actor"
494
498
  require "celluloid/cell"
495
499
  require "celluloid/future"
496
500
 
501
+ require "celluloid/internals/call_chain"
502
+ require "celluloid/internals/cpu_counter"
503
+ require "celluloid/internals/handlers"
504
+ require "celluloid/internals/links"
505
+ require "celluloid/internals/logger"
506
+ require "celluloid/internals/method"
507
+ require "celluloid/internals/properties"
508
+ require "celluloid/internals/receivers"
509
+ require "celluloid/internals/registry"
510
+ require "celluloid/internals/responses"
511
+ require "celluloid/internals/signals"
512
+ require "celluloid/internals/stack"
513
+ require "celluloid/internals/task_set"
514
+ require "celluloid/internals/thread_handle"
515
+ require "celluloid/internals/uuid"
516
+
517
+ require "celluloid/notifications"
518
+ require "celluloid/supervision"
519
+
520
+ require "celluloid/logging"
497
521
  require "celluloid/actor/system"
498
- require "celluloid/actor/manager"
499
-
500
- require "celluloid/deprecate" unless $CELLULOID_BACKPORTED == false
501
-
502
- $CELLULOID_MONITORING = false
503
- Celluloid::Notices.output
504
522
 
505
523
  # Configure default systemwide settings
506
524
 
@@ -527,8 +545,3 @@ Celluloid.group_class =
527
545
  Celluloid::Group.const_get(str)
528
546
  end
529
547
  end
530
-
531
- unless defined?($CELLULOID_TEST) && $CELLULOID_TEST
532
- Celluloid.register_shutdown
533
- Celluloid.init
534
- end