celluloid 0.17.3 → 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.
- checksums.yaml +5 -5
- data/CHANGES.md +300 -73
- data/CONDUCT.md +13 -0
- data/CONTRIBUTING.md +39 -0
- data/README.md +54 -150
- data/REFACTOR.md +1 -0
- data/architecture.md +120 -0
- data/examples/basic_usage.rb +1 -1
- data/examples/configurations.rb +78 -0
- data/examples/futures.rb +1 -1
- data/examples/ring.rb +5 -4
- data/examples/simple_pmap.rb +1 -1
- data/examples/stack.rb +2 -2
- data/examples/supervisors_and_registry.rb +82 -0
- data/examples/timers.rb +2 -2
- data/lib/celluloid.rb +74 -64
- data/lib/celluloid/actor.rb +27 -17
- data/lib/celluloid/actor/system.rb +13 -29
- data/lib/celluloid/autostart.rb +6 -1
- data/lib/celluloid/call/async.rb +2 -0
- data/lib/celluloid/call/sync.rb +10 -3
- data/lib/celluloid/calls.rb +13 -12
- data/lib/celluloid/cell.rb +5 -9
- data/lib/celluloid/condition.rb +3 -3
- data/lib/celluloid/core_ext.rb +0 -2
- data/lib/celluloid/debug.rb +3 -0
- data/lib/celluloid/exceptions.rb +2 -2
- data/lib/celluloid/future.rb +8 -10
- data/lib/celluloid/group.rb +16 -6
- data/lib/celluloid/group/pool.rb +1 -3
- data/lib/celluloid/group/spawner.rb +2 -6
- data/lib/celluloid/internals/call_chain.rb +15 -0
- data/lib/celluloid/internals/cpu_counter.rb +62 -0
- data/lib/celluloid/internals/handlers.rb +42 -0
- data/lib/celluloid/internals/links.rb +38 -0
- data/lib/celluloid/internals/logger.rb +104 -0
- data/lib/celluloid/internals/method.rb +34 -0
- data/lib/celluloid/internals/properties.rb +32 -0
- data/lib/celluloid/internals/receivers.rb +64 -0
- data/lib/celluloid/internals/registry.rb +102 -0
- data/lib/celluloid/internals/responses.rb +46 -0
- data/lib/celluloid/internals/signals.rb +24 -0
- data/lib/celluloid/internals/stack.rb +74 -0
- data/lib/celluloid/internals/stack/dump.rb +12 -0
- data/lib/celluloid/internals/stack/states.rb +72 -0
- data/lib/celluloid/internals/stack/summary.rb +12 -0
- data/lib/celluloid/internals/task_set.rb +51 -0
- data/lib/celluloid/internals/thread_handle.rb +52 -0
- data/lib/celluloid/internals/uuid.rb +40 -0
- data/lib/celluloid/logging/incident.rb +21 -0
- data/lib/celluloid/logging/incident_logger.rb +147 -0
- data/lib/celluloid/logging/incident_reporter.rb +49 -0
- data/lib/celluloid/logging/log_event.rb +20 -0
- data/lib/celluloid/logging/ring_buffer.rb +64 -0
- data/lib/celluloid/mailbox.rb +22 -9
- data/lib/celluloid/mailbox/evented.rb +13 -5
- data/lib/celluloid/notifications.rb +95 -0
- data/lib/celluloid/pool.rb +6 -0
- data/lib/celluloid/probe.rb +81 -0
- data/lib/celluloid/proxy/abstract.rb +9 -9
- data/lib/celluloid/proxy/async.rb +1 -1
- data/lib/celluloid/proxy/block.rb +2 -2
- data/lib/celluloid/proxy/cell.rb +1 -1
- data/lib/celluloid/proxy/future.rb +2 -4
- data/lib/celluloid/proxy/sync.rb +1 -3
- data/lib/celluloid/rspec.rb +22 -33
- data/lib/celluloid/supervision.rb +17 -0
- data/lib/celluloid/supervision/configuration.rb +169 -0
- data/lib/celluloid/supervision/configuration/injections.rb +8 -0
- data/lib/celluloid/supervision/configuration/instance.rb +113 -0
- data/lib/celluloid/supervision/constants.rb +123 -0
- data/lib/celluloid/supervision/container.rb +144 -0
- data/lib/celluloid/supervision/container/behavior.rb +89 -0
- data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
- data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
- data/lib/celluloid/supervision/container/injections.rb +8 -0
- data/lib/celluloid/supervision/container/instance.rb +116 -0
- data/lib/celluloid/supervision/container/pool.rb +210 -0
- data/lib/celluloid/supervision/service.rb +27 -0
- data/lib/celluloid/supervision/supervise.rb +34 -0
- data/lib/celluloid/supervision/validation.rb +40 -0
- data/lib/celluloid/supervision/version.rb +5 -0
- data/lib/celluloid/system_events.rb +11 -6
- data/lib/celluloid/task.rb +25 -12
- data/lib/celluloid/task/fibered.rb +6 -2
- data/lib/celluloid/task/threaded.rb +3 -3
- data/lib/celluloid/test.rb +5 -2
- data/lib/celluloid/thread.rb +0 -2
- data/lib/celluloid/version.rb +1 -1
- data/spec/celluloid/block_spec.rb +29 -32
- data/spec/celluloid/calls_spec.rb +5 -15
- data/spec/celluloid/future_spec.rb +7 -1
- data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
- data/spec/celluloid/internals/links_spec.rb +43 -0
- data/spec/celluloid/internals/properties_spec.rb +40 -0
- data/spec/celluloid/internals/registry_spec.rb +62 -0
- data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
- data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
- data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
- data/spec/celluloid/internals/uuid_spec.rb +9 -0
- data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
- data/spec/celluloid/mailbox/evented_spec.rb +11 -22
- data/spec/celluloid/misc/leak_spec.rb +3 -4
- data/spec/celluloid/notifications_spec.rb +140 -0
- data/spec/celluloid/probe_spec.rb +102 -0
- data/spec/celluloid/proxy_spec.rb +30 -30
- data/spec/celluloid/supervision/behavior_spec.rb +74 -0
- data/spec/celluloid/supervision/configuration_spec.rb +181 -0
- data/spec/celluloid/supervision/container_spec.rb +72 -0
- data/spec/celluloid/supervision/instance_spec.rb +13 -0
- data/spec/celluloid/supervision/root_spec.rb +28 -0
- data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
- data/spec/celluloid/task/fibered_spec.rb +1 -3
- data/spec/celluloid/task/threaded_spec.rb +1 -3
- data/spec/shared/actor_examples.rb +58 -33
- data/spec/shared/group_examples.rb +2 -2
- data/spec/shared/mailbox_examples.rb +1 -1
- data/spec/shared/stack_examples.rb +87 -0
- data/spec/shared/task_examples.rb +2 -3
- data/spec/spec_helper.rb +2 -4
- data/spec/support/configure_rspec.rb +2 -3
- data/spec/support/coverage.rb +2 -4
- data/spec/support/crash_checking.rb +2 -2
- data/spec/support/examples/actor_class.rb +3 -8
- data/spec/support/examples/call_class.rb +2 -2
- data/spec/support/examples/container_class.rb +35 -0
- data/spec/support/examples/evented_mailbox_class.rb +1 -2
- data/spec/support/examples/stack_classes.rb +58 -0
- data/spec/support/examples/stack_methods.rb +23 -0
- data/spec/support/examples/subordinate_class.rb +19 -0
- data/spec/support/logging.rb +3 -34
- data/spec/support/loose_threads.rb +3 -16
- data/spec/support/reset_class_variables.rb +5 -1
- data/spec/support/stubbing.rb +1 -1
- metadata +91 -290
- data/culture/CONDUCT.md +0 -28
- data/culture/Gemfile +0 -9
- data/culture/LICENSE.txt +0 -22
- data/culture/README.md +0 -22
- data/culture/Rakefile +0 -5
- data/culture/SYNC.md +0 -70
- data/culture/celluloid-culture.gemspec +0 -18
- data/culture/gems/README.md +0 -39
- data/culture/gems/dependencies.yml +0 -85
- data/culture/gems/loader.rb +0 -101
- data/culture/rubocop/README.md +0 -38
- data/culture/rubocop/lint.yml +0 -8
- data/culture/rubocop/metrics.yml +0 -15
- data/culture/rubocop/perf.yml +0 -0
- data/culture/rubocop/rubocop.yml +0 -5
- data/culture/rubocop/style.yml +0 -57
- data/culture/spec/gems_spec.rb +0 -2
- data/culture/spec/spec_helper.rb +0 -0
- data/culture/spec/sync_spec.rb +0 -2
- data/culture/sync.rb +0 -56
- data/culture/tasks/rspec.rake +0 -5
- data/culture/tasks/rubocop.rake +0 -2
- data/lib/celluloid/actor/manager.rb +0 -7
- data/lib/celluloid/backported.rb +0 -2
- data/lib/celluloid/current.rb +0 -2
- data/lib/celluloid/deprecate.rb +0 -21
- data/lib/celluloid/fiber.rb +0 -32
- data/lib/celluloid/managed.rb +0 -3
- data/lib/celluloid/notices.rb +0 -15
- data/spec/deprecate/actor_system_spec.rb +0 -72
- data/spec/deprecate/block_spec.rb +0 -52
- data/spec/deprecate/calls_spec.rb +0 -39
- data/spec/deprecate/evented_mailbox_spec.rb +0 -34
- data/spec/deprecate/future_spec.rb +0 -32
- data/spec/deprecate/internal_pool_spec.rb +0 -4
- data/spec/support/env.rb +0 -21
data/culture/rubocop/lint.yml
DELETED
data/culture/rubocop/metrics.yml
DELETED
data/culture/rubocop/perf.yml
DELETED
File without changes
|
data/culture/rubocop/rubocop.yml
DELETED
data/culture/rubocop/style.yml
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
Style/Documentation:
|
2
|
-
Enabled: false
|
3
|
-
|
4
|
-
Style/ModuleFunction:
|
5
|
-
Enabled: false
|
6
|
-
|
7
|
-
Style/AndOr:
|
8
|
-
Enabled: true
|
9
|
-
|
10
|
-
Style/StringLiterals:
|
11
|
-
Enabled: true
|
12
|
-
EnforcedStyle: double_quotes
|
13
|
-
|
14
|
-
Style/EachWithObject:
|
15
|
-
Enabled: true
|
16
|
-
|
17
|
-
Style/InfiniteLoop:
|
18
|
-
Enabled: false
|
19
|
-
|
20
|
-
Style/SpaceAroundEqualsInParameterDefault:
|
21
|
-
Enabled: false
|
22
|
-
|
23
|
-
Style/SpaceInsideBlockBraces:
|
24
|
-
Enabled: false
|
25
|
-
|
26
|
-
Style/AccessModifierIndentation:
|
27
|
-
Enabled: false
|
28
|
-
|
29
|
-
Style/TrailingComma:
|
30
|
-
Enabled: true
|
31
|
-
EnforcedStyleForMultiline: comma
|
32
|
-
|
33
|
-
Style/SpaceInsideBlockBraces:
|
34
|
-
Enabled: true
|
35
|
-
EnforcedStyle: space
|
36
|
-
|
37
|
-
Style/SpaceInsideHashLiteralBraces:
|
38
|
-
Enabled: true
|
39
|
-
EnforcedStyle: no_space
|
40
|
-
|
41
|
-
Style/EmptyLinesAroundAccessModifier:
|
42
|
-
Enabled: false
|
43
|
-
|
44
|
-
Style/RescueModifier:
|
45
|
-
Enabled: false
|
46
|
-
|
47
|
-
Style/GlobalVars:
|
48
|
-
Enabled: false
|
49
|
-
|
50
|
-
Style/FormatString:
|
51
|
-
EnforcedStyle: percent
|
52
|
-
|
53
|
-
Style/TrailingUnderscoreVariable:
|
54
|
-
Enabled: false
|
55
|
-
|
56
|
-
Style/ParallelAssignment:
|
57
|
-
Enabled: false
|
data/culture/spec/gems_spec.rb
DELETED
data/culture/spec/spec_helper.rb
DELETED
File without changes
|
data/culture/spec/sync_spec.rb
DELETED
data/culture/sync.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require "forwardable"
|
2
|
-
|
3
|
-
module Celluloid
|
4
|
-
module Sync
|
5
|
-
class << self
|
6
|
-
undef gem_path rescue nil
|
7
|
-
def gem_path
|
8
|
-
File.expand_path("../../", __FILE__)
|
9
|
-
end
|
10
|
-
|
11
|
-
undef gem_name rescue nil
|
12
|
-
def gem_name
|
13
|
-
Dir["#{File.expand_path('../../', __FILE__)}/*.gemspec"].first.gsub(".gemspec", "").split("/").last
|
14
|
-
end
|
15
|
-
|
16
|
-
undef gem_name? rescue nil
|
17
|
-
def gem_name?
|
18
|
-
!gem_name.nil?
|
19
|
-
end
|
20
|
-
|
21
|
-
undef lib_path rescue nil
|
22
|
-
def lib_path
|
23
|
-
File.expand_path("../../lib", __FILE__)
|
24
|
-
end
|
25
|
-
|
26
|
-
undef lib_gempath rescue nil
|
27
|
-
def lib_gempath
|
28
|
-
"#{lib_path}/#{gem_name.split('-').join('/')}"
|
29
|
-
end
|
30
|
-
|
31
|
-
undef scenario rescue nil
|
32
|
-
def scenario
|
33
|
-
File.basename($PROGRAM_NAME)
|
34
|
-
end
|
35
|
-
|
36
|
-
undef bundler? rescue nil
|
37
|
-
def bundler?
|
38
|
-
scenario == "bundle"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
fail "Missing gemspec." unless gem_name?
|
43
|
-
$LOAD_PATH.push(gem_path)
|
44
|
-
$LOAD_PATH.push(lib_path)
|
45
|
-
|
46
|
-
# TODO: This will likely need to be done differently if INSIDE a cut gem.
|
47
|
-
if scenario == "bundle"
|
48
|
-
`cd #{gem_path}/culture; git pull origin master` if ARGV.first == "update"
|
49
|
-
end
|
50
|
-
|
51
|
-
require("#{gem_path}/culture/gems/loader")
|
52
|
-
if File.exist?(version = "#{lib_gempath}/version.rb")
|
53
|
-
require(version)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
data/culture/tasks/rspec.rake
DELETED
data/culture/tasks/rubocop.rake
DELETED
data/lib/celluloid/backported.rb
DELETED
data/lib/celluloid/current.rb
DELETED
data/lib/celluloid/deprecate.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
class Thread
|
2
|
-
def self.mailbox
|
3
|
-
Celluloid.mailbox
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.receive(timeout = nil, &block)
|
7
|
-
Celluloid.receive(timeout, &block)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
# TODO: Remove link to Interal::Logger
|
12
|
-
module Celluloid
|
13
|
-
SyncCall = Call::Sync
|
14
|
-
EventedMailbox = Mailbox::Evented
|
15
|
-
InternalPool = Group::Pool
|
16
|
-
TaskThread = Task::Threaded
|
17
|
-
TaskFiber = Task::Fibered
|
18
|
-
ActorSystem = Actor::System
|
19
|
-
Task::TerminatedError = TaskTerminated
|
20
|
-
Task::TimeoutError = TaskTimeout
|
21
|
-
end
|
data/lib/celluloid/fiber.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Fibers are hard... let's go shopping!
|
2
|
-
begin
|
3
|
-
require "fiber"
|
4
|
-
rescue LoadError => ex
|
5
|
-
if defined? JRUBY_VERSION
|
6
|
-
if RUBY_VERSION < "1.9.2"
|
7
|
-
raise LoadError, "Celluloid requires JRuby 1.9 mode. Please pass the --1.9 flag or set JRUBY_OPTS=--1.9"
|
8
|
-
end
|
9
|
-
|
10
|
-
# Fibers are broken on JRuby 1.6.5. This works around the issue
|
11
|
-
if JRUBY_VERSION[/^1\.6\.5/]
|
12
|
-
require "jruby"
|
13
|
-
org.jruby.ext.fiber.FiberExtLibrary.new.load(JRuby.runtime, false)
|
14
|
-
class org.jruby.ext.fiber::ThreadFiber
|
15
|
-
field_accessor :state
|
16
|
-
end
|
17
|
-
|
18
|
-
class Fiber
|
19
|
-
def alive?
|
20
|
-
JRuby.reference(self).state != org.jruby.ext.fiber.ThreadFiberState::FINISHED
|
21
|
-
end
|
22
|
-
end
|
23
|
-
else
|
24
|
-
# Just in case subsequent JRuby releases have broken fibers :/
|
25
|
-
raise ex
|
26
|
-
end
|
27
|
-
elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == "rbx"
|
28
|
-
raise LoadError, "Celluloid requires Rubinius 1.9 mode. Please pass the -X19 flag."
|
29
|
-
else
|
30
|
-
raise ex
|
31
|
-
end
|
32
|
-
end
|
data/lib/celluloid/managed.rb
DELETED
data/lib/celluloid/notices.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Celluloid
|
2
|
-
module Notices
|
3
|
-
class << self
|
4
|
-
@@notices = []
|
5
|
-
|
6
|
-
def backported
|
7
|
-
@@notices << [:info, "Celluloid #{Celluloid::VERSION} is running in BACKPORTED mode. [ http://git.io/vJf3J ]"]
|
8
|
-
end
|
9
|
-
|
10
|
-
def output
|
11
|
-
@@notices.each { |type, notice| Celluloid::Internals::Logger.send type, notice }
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
RSpec.describe "Deprecated Celluloid::ActorSystem" do
|
2
|
-
subject { Celluloid::ActorSystem.new }
|
3
|
-
|
4
|
-
class DeprecatedTestActor
|
5
|
-
include Celluloid
|
6
|
-
end
|
7
|
-
|
8
|
-
it "supports non-global ActorSystem" do
|
9
|
-
subject.within do
|
10
|
-
expect(Celluloid.actor_system).to eq(subject)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
it "starts default actors" do
|
15
|
-
subject.start
|
16
|
-
expect(subject.registered).to eq(Celluloid::ActorSystem::ROOT_SERVICES.map { |r| r[:as] })
|
17
|
-
subject.shutdown
|
18
|
-
end
|
19
|
-
|
20
|
-
it "support getting threads" do
|
21
|
-
subject.start
|
22
|
-
queue = Queue.new
|
23
|
-
thread = subject.get_thread do
|
24
|
-
expect(Celluloid.actor_system).to eq(subject)
|
25
|
-
queue << nil
|
26
|
-
end
|
27
|
-
queue.pop
|
28
|
-
subject.shutdown
|
29
|
-
end
|
30
|
-
|
31
|
-
it "allows a stack dump" do
|
32
|
-
expect(subject.stack_dump).to be_a(Celluloid::StackDump)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "returns named actors" do
|
36
|
-
subject.start
|
37
|
-
|
38
|
-
subject.within do
|
39
|
-
DeprecatedTestActor.supervise_as :test
|
40
|
-
end
|
41
|
-
|
42
|
-
expect(subject.registered).to include(:test)
|
43
|
-
subject.shutdown
|
44
|
-
end
|
45
|
-
|
46
|
-
it "returns running actors" do
|
47
|
-
expect(subject.running).to be_empty
|
48
|
-
|
49
|
-
first = subject.within do
|
50
|
-
DeprecatedTestActor.new
|
51
|
-
end
|
52
|
-
|
53
|
-
second = subject.within do
|
54
|
-
DeprecatedTestActor.new
|
55
|
-
end
|
56
|
-
|
57
|
-
expect(subject.running).to eq([first, second])
|
58
|
-
subject.shutdown
|
59
|
-
end
|
60
|
-
|
61
|
-
it "shuts down" do
|
62
|
-
subject.shutdown
|
63
|
-
|
64
|
-
expect { subject.get_thread }
|
65
|
-
.to raise_error(Celluloid::NotActive)
|
66
|
-
end
|
67
|
-
|
68
|
-
it "warns nicely when no actor system is started" do
|
69
|
-
expect { DeprecatedTestActor.new }
|
70
|
-
.to raise_error("Celluloid is not yet started; use Celluloid.boot")
|
71
|
-
end
|
72
|
-
end unless $CELLULOID_BACKPORTED == false
|
@@ -1,52 +0,0 @@
|
|
1
|
-
RSpec.describe "Deprecated Blocks", actor_system: :global do
|
2
|
-
class DeprecatedBlockActor
|
3
|
-
include Celluloid
|
4
|
-
|
5
|
-
def initialize(name)
|
6
|
-
@name = name
|
7
|
-
end
|
8
|
-
attr_reader :name
|
9
|
-
|
10
|
-
def ask_for_something(other)
|
11
|
-
sender_actor = current_actor
|
12
|
-
$data << [:outside, @name, current_actor.name]
|
13
|
-
other.do_something_and_callback do |value|
|
14
|
-
$data << [:yielded, @name, current_actor.name]
|
15
|
-
$data << receive_result(:self)
|
16
|
-
$data << current_actor.receive_result(:current_actor)
|
17
|
-
$data << sender_actor.receive_result(:sender)
|
18
|
-
"somevalue"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def do_something_and_callback
|
23
|
-
$data << [:something, @name, current_actor.name]
|
24
|
-
$data << yield(:foo)
|
25
|
-
end
|
26
|
-
|
27
|
-
def receive_result(result)
|
28
|
-
[result, @name, current_actor.name]
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
it "works" do
|
33
|
-
$data = []
|
34
|
-
|
35
|
-
a1 = DeprecatedBlockActor.new("one")
|
36
|
-
a2 = DeprecatedBlockActor.new("two")
|
37
|
-
|
38
|
-
a1.ask_for_something a2
|
39
|
-
|
40
|
-
expected = [
|
41
|
-
[:outside, "one", "one"],
|
42
|
-
[:something, "two", "two"],
|
43
|
-
[:yielded, "one", "one"],
|
44
|
-
[:self, "one", "one"],
|
45
|
-
[:current_actor, "one", "one"],
|
46
|
-
[:sender, "one", "one"],
|
47
|
-
"somevalue",
|
48
|
-
]
|
49
|
-
|
50
|
-
expect($data).to eq(expected)
|
51
|
-
end
|
52
|
-
end unless $CELLULOID_BACKPORTED == false
|
@@ -1,39 +0,0 @@
|
|
1
|
-
RSpec.describe "Deprecated Celluloid::SyncCall", actor_system: :global do
|
2
|
-
subject { Celluloid::SyncCall.new }
|
3
|
-
|
4
|
-
let(:actor) { DeprecatedCallExampleActor.new }
|
5
|
-
|
6
|
-
context "when obj does not respond to a method" do
|
7
|
-
it "raises a NoMethodError" do
|
8
|
-
expect do
|
9
|
-
actor.the_method_that_wasnt_there
|
10
|
-
end.to raise_exception(NoMethodError)
|
11
|
-
expect(actor).to be_alive
|
12
|
-
end
|
13
|
-
|
14
|
-
context "when obj raises during inspect" do
|
15
|
-
it "should emulate obj.inspect" do
|
16
|
-
expect(actor).to_not receive(:inspect)
|
17
|
-
expect { actor.no_such_method }.to raise_exception(
|
18
|
-
NoMethodError,
|
19
|
-
/undefined method `no_such_method' for #\<DeprecatedCallExampleActor:0x[a-f0-9]+>/,
|
20
|
-
)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
it "aborts with ArgumentError when a method is called with too many arguments" do
|
26
|
-
expect do
|
27
|
-
actor.actual_method("with too many arguments")
|
28
|
-
end.to raise_exception(ArgumentError)
|
29
|
-
|
30
|
-
expect(actor).to be_alive
|
31
|
-
end
|
32
|
-
|
33
|
-
it "preserves call chains across synchronous calls" do
|
34
|
-
actor2 = DeprecatedCallExampleActor.new(actor)
|
35
|
-
|
36
|
-
uuid, next_actor_uuid = actor2.chained_call_ids
|
37
|
-
expect(uuid).to eq next_actor_uuid
|
38
|
-
end
|
39
|
-
end unless $CELLULOID_BACKPORTED == false
|
@@ -1,34 +0,0 @@
|
|
1
|
-
unless $CELLULOID_BACKPORTED == false
|
2
|
-
class DeprecatedTestEventedMailbox < Celluloid::Mailbox::Evented
|
3
|
-
class Reactor
|
4
|
-
def initialize
|
5
|
-
@condition = ConditionVariable.new
|
6
|
-
@mutex = Mutex.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def wakeup
|
10
|
-
@mutex.synchronize do
|
11
|
-
@condition.signal
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def run_once(timeout)
|
16
|
-
@mutex.synchronize do
|
17
|
-
@condition.wait(@mutex, timeout)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def shutdown
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def initialize
|
26
|
-
super(Reactor)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
RSpec.describe "Deprecated Celluloid::Mailbox::Evented" do
|
31
|
-
subject { DeprecatedTestEventedMailbox.new }
|
32
|
-
it_behaves_like "a Celluloid Mailbox"
|
33
|
-
end
|
34
|
-
end
|