celluloid 0.17.3 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|