celluloid 0.16.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of celluloid might be problematic. Click here for more details.

Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +333 -0
  3. data/README.md +1 -1
  4. data/culture/CODE_OF_CONDUCT.md +28 -0
  5. data/culture/Gemfile +9 -0
  6. data/culture/README.md +22 -0
  7. data/culture/Rakefile +5 -0
  8. data/culture/SYNC.md +70 -0
  9. data/culture/celluloid-culture.gemspec +18 -0
  10. data/culture/gems/README.md +39 -0
  11. data/culture/gems/dependencies.yml +78 -0
  12. data/culture/gems/loader.rb +101 -0
  13. data/culture/rubocop/README.md +38 -0
  14. data/culture/rubocop/lint.yml +8 -0
  15. data/culture/rubocop/metrics.yml +15 -0
  16. data/culture/rubocop/rubocop.yml +4 -0
  17. data/culture/rubocop/style.yml +48 -0
  18. data/culture/spec/gems_spec.rb +2 -0
  19. data/culture/spec/spec_helper.rb +0 -0
  20. data/culture/spec/sync_spec.rb +2 -0
  21. data/culture/sync.rb +56 -0
  22. data/culture/tasks/rspec.rake +5 -0
  23. data/culture/tasks/rubocop.rake +2 -0
  24. data/examples/basic_usage.rb +49 -0
  25. data/examples/futures.rb +38 -0
  26. data/examples/ring.rb +61 -0
  27. data/examples/simple_pmap.rb +14 -0
  28. data/examples/timers.rb +72 -0
  29. data/lib/celluloid.rb +142 -127
  30. data/lib/celluloid/actor.rb +47 -41
  31. data/lib/celluloid/actor_system.rb +75 -22
  32. data/lib/celluloid/autostart.rb +1 -1
  33. data/lib/celluloid/backported.rb +2 -0
  34. data/lib/celluloid/call/async.rb +16 -0
  35. data/lib/celluloid/call/block.rb +22 -0
  36. data/lib/celluloid/call/sync.rb +70 -0
  37. data/lib/celluloid/calls.rb +25 -114
  38. data/lib/celluloid/cell.rb +32 -20
  39. data/lib/celluloid/condition.rb +3 -3
  40. data/lib/celluloid/core_ext.rb +1 -1
  41. data/lib/celluloid/current.rb +2 -0
  42. data/lib/celluloid/deprecate.rb +18 -0
  43. data/lib/celluloid/exceptions.rb +1 -1
  44. data/lib/celluloid/fiber.rb +3 -3
  45. data/lib/celluloid/future.rb +7 -6
  46. data/lib/celluloid/group.rb +65 -0
  47. data/lib/celluloid/group/manager.rb +27 -0
  48. data/lib/celluloid/group/pool.rb +125 -0
  49. data/lib/celluloid/group/spawner.rb +71 -0
  50. data/lib/celluloid/logging.rb +5 -5
  51. data/lib/celluloid/mailbox.rb +14 -13
  52. data/lib/celluloid/mailbox/evented.rb +76 -0
  53. data/lib/celluloid/notices.rb +15 -0
  54. data/lib/celluloid/proxies.rb +12 -0
  55. data/lib/celluloid/proxy/abstract.rb +24 -0
  56. data/lib/celluloid/proxy/actor.rb +46 -0
  57. data/lib/celluloid/proxy/async.rb +36 -0
  58. data/lib/celluloid/proxy/block.rb +31 -0
  59. data/lib/celluloid/proxy/cell.rb +76 -0
  60. data/lib/celluloid/proxy/future.rb +40 -0
  61. data/lib/celluloid/proxy/sync.rb +44 -0
  62. data/lib/celluloid/rspec.rb +9 -10
  63. data/lib/celluloid/system_events.rb +16 -15
  64. data/lib/celluloid/{tasks.rb → task.rb} +21 -21
  65. data/lib/celluloid/task/fibered.rb +45 -0
  66. data/lib/celluloid/task/threaded.rb +59 -0
  67. data/lib/celluloid/test.rb +1 -1
  68. data/lib/celluloid/thread.rb +6 -1
  69. data/lib/celluloid/version.rb +3 -0
  70. data/spec/celluloid/actor_spec.rb +2 -2
  71. data/spec/celluloid/actor_system_spec.rb +35 -21
  72. data/spec/celluloid/block_spec.rb +3 -5
  73. data/spec/celluloid/calls_spec.rb +33 -11
  74. data/spec/celluloid/condition_spec.rb +16 -13
  75. data/spec/celluloid/evented_mailbox_spec.rb +1 -31
  76. data/spec/celluloid/future_spec.rb +13 -10
  77. data/spec/celluloid/group/elastic_spec.rb +0 -0
  78. data/spec/celluloid/group/manager_spec.rb +0 -0
  79. data/spec/celluloid/group/pool_spec.rb +8 -0
  80. data/spec/celluloid/group/spawner_spec.rb +8 -0
  81. data/spec/celluloid/mailbox/evented_spec.rb +27 -0
  82. data/spec/celluloid/mailbox_spec.rb +1 -3
  83. data/spec/celluloid/misc/leak_spec.rb +73 -0
  84. data/spec/celluloid/task/fibered_spec.rb +5 -0
  85. data/spec/celluloid/task/threaded_spec.rb +5 -0
  86. data/spec/celluloid/timer_spec.rb +14 -16
  87. data/spec/deprecate/actor_system_spec.rb +72 -0
  88. data/spec/deprecate/block_spec.rb +52 -0
  89. data/spec/deprecate/calls_spec.rb +57 -0
  90. data/spec/deprecate/evented_mailbox_spec.rb +34 -0
  91. data/spec/deprecate/future_spec.rb +32 -0
  92. data/spec/deprecate/internal_pool_spec.rb +4 -0
  93. data/spec/shared/actor_examples.rb +1237 -0
  94. data/spec/shared/group_examples.rb +121 -0
  95. data/{lib/celluloid/rspec → spec/shared}/mailbox_examples.rb +20 -17
  96. data/{lib/celluloid/rspec → spec/shared}/task_examples.rb +9 -8
  97. data/spec/spec_helper.rb +72 -16
  98. data/spec/support/coverage.rb +4 -0
  99. data/spec/support/crash_checking.rb +68 -0
  100. data/spec/support/debugging.rb +31 -0
  101. data/spec/support/env.rb +16 -0
  102. data/{lib/celluloid/rspec/example_actor_class.rb → spec/support/examples/actor_class.rb} +21 -2
  103. data/spec/support/examples/evented_mailbox_class.rb +27 -0
  104. data/spec/support/includer.rb +9 -0
  105. data/spec/support/logging.rb +63 -0
  106. data/spec/support/loose_threads.rb +65 -0
  107. data/spec/support/reset_class_variables.rb +27 -0
  108. data/spec/support/sleep_and_wait.rb +14 -0
  109. data/spec/support/split_logs.rb +1 -0
  110. data/spec/support/stubbing.rb +14 -0
  111. metadata +255 -95
  112. data/lib/celluloid/call_chain.rb +0 -13
  113. data/lib/celluloid/cpu_counter.rb +0 -34
  114. data/lib/celluloid/evented_mailbox.rb +0 -73
  115. data/lib/celluloid/fsm.rb +0 -186
  116. data/lib/celluloid/handlers.rb +0 -41
  117. data/lib/celluloid/internal_pool.rb +0 -159
  118. data/lib/celluloid/legacy.rb +0 -9
  119. data/lib/celluloid/links.rb +0 -36
  120. data/lib/celluloid/logger.rb +0 -93
  121. data/lib/celluloid/logging/incident.rb +0 -21
  122. data/lib/celluloid/logging/incident_logger.rb +0 -129
  123. data/lib/celluloid/logging/incident_reporter.rb +0 -48
  124. data/lib/celluloid/logging/log_event.rb +0 -20
  125. data/lib/celluloid/logging/ring_buffer.rb +0 -65
  126. data/lib/celluloid/method.rb +0 -32
  127. data/lib/celluloid/notifications.rb +0 -83
  128. data/lib/celluloid/pool_manager.rb +0 -146
  129. data/lib/celluloid/probe.rb +0 -73
  130. data/lib/celluloid/properties.rb +0 -24
  131. data/lib/celluloid/proxies/abstract_proxy.rb +0 -20
  132. data/lib/celluloid/proxies/actor_proxy.rb +0 -38
  133. data/lib/celluloid/proxies/async_proxy.rb +0 -31
  134. data/lib/celluloid/proxies/block_proxy.rb +0 -29
  135. data/lib/celluloid/proxies/cell_proxy.rb +0 -68
  136. data/lib/celluloid/proxies/future_proxy.rb +0 -35
  137. data/lib/celluloid/proxies/sync_proxy.rb +0 -36
  138. data/lib/celluloid/receivers.rb +0 -63
  139. data/lib/celluloid/registry.rb +0 -57
  140. data/lib/celluloid/responses.rb +0 -44
  141. data/lib/celluloid/rspec/actor_examples.rb +0 -1054
  142. data/lib/celluloid/signals.rb +0 -23
  143. data/lib/celluloid/stack_dump.rb +0 -133
  144. data/lib/celluloid/supervision_group.rb +0 -169
  145. data/lib/celluloid/supervisor.rb +0 -22
  146. data/lib/celluloid/task_set.rb +0 -49
  147. data/lib/celluloid/tasks/task_fiber.rb +0 -43
  148. data/lib/celluloid/tasks/task_thread.rb +0 -53
  149. data/lib/celluloid/thread_handle.rb +0 -50
  150. data/lib/celluloid/uuid.rb +0 -38
  151. data/spec/celluloid/cpu_counter_spec.rb +0 -82
  152. data/spec/celluloid/fsm_spec.rb +0 -107
  153. data/spec/celluloid/internal_pool_spec.rb +0 -52
  154. data/spec/celluloid/links_spec.rb +0 -45
  155. data/spec/celluloid/logging/ring_buffer_spec.rb +0 -38
  156. data/spec/celluloid/notifications_spec.rb +0 -120
  157. data/spec/celluloid/pool_spec.rb +0 -92
  158. data/spec/celluloid/probe_spec.rb +0 -121
  159. data/spec/celluloid/properties_spec.rb +0 -42
  160. data/spec/celluloid/registry_spec.rb +0 -64
  161. data/spec/celluloid/stack_dump_spec.rb +0 -64
  162. data/spec/celluloid/supervision_group_spec.rb +0 -65
  163. data/spec/celluloid/supervisor_spec.rb +0 -103
  164. data/spec/celluloid/tasks/task_fiber_spec.rb +0 -5
  165. data/spec/celluloid/tasks/task_thread_spec.rb +0 -5
  166. data/spec/celluloid/thread_handle_spec.rb +0 -26
  167. data/spec/celluloid/uuid_spec.rb +0 -11
@@ -0,0 +1,31 @@
1
+ module Debugging
2
+ # Attempt to safely convert an object to a useful string (without side
3
+ # effects if possible)
4
+ #
5
+ # Feel free to add support for more objects/responses/etc.
6
+ def self.dump(obj)
7
+ case obj
8
+ when ::Symbol
9
+ obj.inspect
10
+ when ::String
11
+ obj
12
+ when ::Regexp
13
+ obj.inspect
14
+ when ::IO
15
+ obj.inspect
16
+ when ::Array
17
+ obj.map { |a| Debugging.dump(a) }.to_s
18
+ when ::Celluloid::Response::Success
19
+ "SuccessResponse(#{dump(obj.value)}) (#{dump(obj.call)})"
20
+ when ::Celluloid::Call
21
+ args = obj.arguments.map { |a| Debugging.dump(a) }
22
+ "Call: #{obj}-> #{obj.method.inspect}(#{args.join(', ')})"
23
+ else
24
+ begin
25
+ obj.__send__(:__class__).to_s
26
+ rescue NoMethodError
27
+ obj.__send__(:class).to_s
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ require "nenv"
2
+ require "dotenv"
3
+ Dotenv.load!(Nenv("celluloid").config_file || (Nenv.ci? ? ".env-ci" : ".env-dev"))
4
+
5
+ module Specs
6
+ def self.env
7
+ @env ||= Nenv("celluloid_specs")
8
+ end
9
+
10
+ def self.configure(config)
11
+ if Specs.split_logs?
12
+ config.log_split_dir = File.expand_path("../../log/#{DateTime.now.iso8601}", __FILE__)
13
+ config.log_split_module = Specs
14
+ end
15
+ end
16
+ end
@@ -1,3 +1,7 @@
1
+ class ExampleCrash < StandardError
2
+ attr_accessor :foo
3
+ end
4
+
1
5
  module ExampleActorClass
2
6
  def self.create(included_module, task_klass)
3
7
  Class.new do
@@ -41,7 +45,7 @@ module ExampleActorClass
41
45
  end
42
46
 
43
47
  def crash
44
- raise ExampleCrash, "the spec purposely crashed me :("
48
+ fail ExampleCrash, "the spec purposely crashed me :("
45
49
  end
46
50
 
47
51
  def crash_with_abort(reason, foo = nil)
@@ -74,6 +78,8 @@ module ExampleActorClass
74
78
  terminate
75
79
  end
76
80
 
81
+ # Ideally, this class should implement "fake methods"
82
+ # consistently, including :methods, :public_methods, etc.
77
83
  def method_missing(method_name, *args, &block)
78
84
  if delegates?(method_name)
79
85
  @delegate.send method_name, *args, &block
@@ -83,7 +89,19 @@ module ExampleActorClass
83
89
  end
84
90
 
85
91
  def respond_to?(method_name, include_private = false)
86
- super || delegates?(method_name)
92
+ if delegates?(method_name)
93
+ delegates?(method_name)
94
+ else
95
+ super
96
+ end
97
+ end
98
+
99
+ def method(method_name)
100
+ if delegates?(method_name)
101
+ @delegate.method(method_name)
102
+ else
103
+ super
104
+ end
87
105
  end
88
106
 
89
107
  def call_private
@@ -102,6 +120,7 @@ module ExampleActorClass
102
120
  private
103
121
 
104
122
  def delegates?(method_name)
123
+ return false unless @delegate ||= nil
105
124
  @delegate.respond_to?(method_name)
106
125
  end
107
126
  end
@@ -0,0 +1,27 @@
1
+ class TestEventedMailbox < Celluloid::Mailbox::Evented
2
+ class Reactor
3
+ def initialize
4
+ @condition = ConditionVariable.new
5
+ @mutex = Mutex.new
6
+ end
7
+
8
+ def wakeup
9
+ @mutex.synchronize do
10
+ @condition.signal
11
+ end
12
+ end
13
+
14
+ def run_once(timeout)
15
+ @mutex.synchronize do
16
+ @condition.wait(@mutex, timeout)
17
+ end
18
+ end
19
+
20
+ def shutdown
21
+ end
22
+ end
23
+
24
+ def initialize
25
+ super(Reactor)
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ module CelluloidSpecs
2
+ def self.included_module
3
+ # Celluloid::IO implements this with with 'Celluloid::IO'
4
+ Celluloid
5
+ end
6
+
7
+ # Timer accuracy enforced by the tests (50ms)
8
+ TIMER_QUANTUM = 0.05
9
+ end
@@ -0,0 +1,63 @@
1
+ module Specs
2
+ class << self
3
+ def log
4
+ # Setup ENV variable handling with sane defaults
5
+ @log ||= Nenv("celluloid_specs_log") do |env|
6
+ env.create_method(:file) { |f| f || "log/default.log" }
7
+ env.create_method(:sync?) { |s| s || !Nenv.ci? }
8
+
9
+ env.create_method(:strategy) do |strategy|
10
+ strategy || default_strategy
11
+ end
12
+
13
+ env.create_method(:level) { |level| default_level_for(env, level) }
14
+ end
15
+ end
16
+
17
+ def split_logs?
18
+ log.strategy == "split"
19
+ end
20
+
21
+ def logger
22
+ @logger ||= default_logger.tap { |logger| logger.level = log.level }
23
+ end
24
+
25
+ attr_writer :logger
26
+
27
+ private
28
+
29
+ def default_logger
30
+ case log.strategy
31
+ when "stderr"
32
+ Logger.new(STDERR)
33
+ when "single"
34
+ Logger.new(open_logfile(log.file, log.sync?))
35
+ when "split"
36
+ # Use Celluloid in case there's logging in a before/after handle
37
+ # (is that a bug in rspec-log_split?)
38
+ Celluloid.logger
39
+ else
40
+ fail "Unknown logger strategy: #{strategy.inspect}."\
41
+ " Expected 'split', 'single' or 'stderr'."
42
+ end
43
+ end
44
+
45
+ def open_logfile(rel_path, sync)
46
+ root = Pathname(__FILE__).dirname.dirname.dirname
47
+ log_path = root + rel_path
48
+ logfile = File.open(log_path.to_s, "a")
49
+ logfile.sync if sync
50
+ logfile
51
+ end
52
+
53
+ def default_strategy
54
+ (Nenv.ci? ? "stderr" : "split")
55
+ end
56
+
57
+ def default_level_for(env, level)
58
+ Integer(level)
59
+ rescue
60
+ env.strategy == "stderr" ? Logger::WARN : Logger::DEBUG
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,65 @@
1
+ module Specs
2
+ class << self
3
+ def loose_threads
4
+ Thread.list.map do |thread|
5
+ next unless thread
6
+ next if thread == Thread.current
7
+ if RUBY_PLATFORM == "java"
8
+ # Avoid disrupting jRuby's "fiber" threads.
9
+ name = thread.to_java.getNativeThread.get_name
10
+ next if /Fiber/ =~ name
11
+ next unless /^Ruby-/ =~ name
12
+ backtrace = thread.backtrace # avoid race maybe
13
+ next unless backtrace
14
+ next if backtrace.empty? # possibly a timer thread
15
+ end
16
+
17
+ if RUBY_ENGINE == "rbx"
18
+ # Avoid disrupting Rubinious thread
19
+ next if thread.backtrace.empty?
20
+ next if thread.backtrace.first =~ %r{rubysl/timeout/timeout\.rb}
21
+ end
22
+
23
+ if RUBY_ENGINE == "ruby"
24
+ # Sometimes stays
25
+ next if thread.backtrace.first =~ %r{/timeout\.rb}
26
+ end
27
+
28
+ thread
29
+ end.compact
30
+ end
31
+
32
+ def assert_no_loose_threads(location)
33
+ Specs.assert_no_loose_threads!("before example: #{location}")
34
+ yield
35
+ Specs.assert_no_loose_threads!("after example: #{location}")
36
+ end
37
+
38
+ def thread_name(thread)
39
+ (RUBY_PLATFORM == "java") ? thread.to_java.getNativeThread.get_name : ""
40
+ end
41
+
42
+ def assert_no_loose_threads!(location)
43
+ loose = Specs.loose_threads
44
+ backtraces = loose.map do |thread|
45
+ name = thread_name(thread)
46
+ description = "#{thread.inspect}#{name.empty? ? '' : "(#{name})"}"
47
+ "Runaway thread: ================ #{description}\n" \
48
+ "Backtrace: \n ** #{thread.backtrace * "\n ** "}\n"
49
+ end
50
+
51
+ return if loose.empty?
52
+
53
+ if RUBY_PLATFORM == "java" && !Nenv.ci?
54
+ STDERR.puts "Aborted due to runaway threads (#{location})\n"\
55
+ "List: (#{loose.map(&:inspect)})\n:#{backtraces.join("\n")}"
56
+
57
+ STDERR.puts "Sleeping so you can investigate on the Java side...."
58
+ sleep
59
+ end
60
+
61
+ fail "Aborted due to runaway threads (#{location})\n"\
62
+ "List: (#{loose.map(&:inspect)})\n:#{backtraces.join("\n")}"
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,27 @@
1
+ module Specs
2
+ class << self
3
+ def reset_class_variables(description)
4
+ # build uuid from example ending (most unique)
5
+ uuid_prefix = description[-([description.size, 20].min)..-1]
6
+ reset_uuid(uuid_prefix)
7
+
8
+ reset_probe(Queue.new)
9
+ yield
10
+ reset_probe(nil)
11
+ end
12
+
13
+ def reset_probe(value)
14
+ $CELLULOID_MONITORING = !value.nil?
15
+ replace_const(Celluloid::Probe, :EVENTS_BUFFER, value)
16
+ end
17
+
18
+ def reset_uuid(uuid_prefix)
19
+ replace_const(Celluloid::Internals::UUID, :PREFIX, uuid_prefix)
20
+ end
21
+
22
+ def replace_const(klass, const, value)
23
+ klass.send(:remove_const, const) if klass.const_defined?(const)
24
+ klass.const_set(const, value)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,14 @@
1
+ module Specs
2
+ def self.sleep_and_wait_until(timeout = 10)
3
+ t1 = Time.now.to_f
4
+ ::Timeout.timeout(timeout) do
5
+ loop until yield
6
+ end
7
+
8
+ diff = Time.now.to_f - t1
9
+ STDERR.puts "wait took a bit long: #{diff} seconds" if diff > 0.4
10
+ rescue Timeout::Error
11
+ t2 = Time.now.to_f
12
+ raise "Timeout after: #{t2 - t1} seconds"
13
+ end
14
+ end
@@ -0,0 +1 @@
1
+ require "rspec/log_split" if Specs.split_logs?
@@ -0,0 +1,14 @@
1
+ module Specs
2
+ def self.stub_out_class_method(mod, meth)
3
+ meta = (class << mod; self; end)
4
+ original_meth = "original_#{meth}".to_sym
5
+
6
+ fail "ALREADY TRACED: #{mod}.#{meth}" if mod.respond_to?(original_meth)
7
+
8
+ meta.send(:alias_method, original_meth, meth)
9
+ meta.send(:define_method, meth) do |*args, &block|
10
+ yield(*args) if block_given?
11
+ mod.send original_meth, *args, &block
12
+ end
13
+ end
14
+ end
metadata CHANGED
@@ -1,218 +1,378 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Arcieri
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-05 00:00:00.000000000 Z
11
+ date: 2015-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: timers
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
16
+ - - '>='
18
17
  - !ruby/object:Gem::Version
19
- version: 4.0.0
18
+ version: '0'
19
+ name: bundler
20
+ prerelease: false
20
21
  type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ name: nenv
21
34
  prerelease: false
35
+ type: :runtime
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - "~>"
38
+ - - '>='
25
39
  - !ruby/object:Gem::Version
26
- version: 4.0.0
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
- name: rake
29
42
  requirement: !ruby/object:Gem::Requirement
30
43
  requirements:
31
- - - ">="
44
+ - - '>='
32
45
  - !ruby/object:Gem::Version
33
46
  version: '0'
34
- type: :development
47
+ name: dotenv
35
48
  prerelease: false
49
+ type: :runtime
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ">="
52
+ - - '>='
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rspec
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
- - - "~>"
58
+ - - '>='
46
59
  - !ruby/object:Gem::Version
47
- version: 2.14.1
48
- type: :development
60
+ version: '0'
61
+ name: benchmark_suite
49
62
  prerelease: false
63
+ type: :development
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - '>='
53
67
  - !ruby/object:Gem::Version
54
- version: 2.14.1
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: guard-rspec
57
70
  requirement: !ruby/object:Gem::Requirement
58
71
  requirements:
59
- - - ">="
72
+ - - '>='
60
73
  - !ruby/object:Gem::Version
61
74
  version: '0'
75
+ name: rubocop
76
+ prerelease: false
62
77
  type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ name: pry
63
90
  prerelease: false
91
+ type: :development
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
- - - ">="
94
+ - - '>='
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: benchmark_suite
71
98
  requirement: !ruby/object:Gem::Requirement
72
99
  requirements:
73
- - - ">="
100
+ - - '>='
74
101
  - !ruby/object:Gem::Version
75
102
  version: '0'
103
+ name: rake
104
+ prerelease: false
76
105
  type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ name: rspec
77
118
  prerelease: false
119
+ type: :development
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
- - - ">="
122
+ - - '>='
81
123
  - !ruby/object:Gem::Version
82
124
  version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
- name: rubocop
85
126
  requirement: !ruby/object:Gem::Requirement
86
127
  requirements:
87
- - - ">="
128
+ - - '>='
88
129
  - !ruby/object:Gem::Version
89
130
  version: '0'
131
+ name: coveralls
132
+ prerelease: false
90
133
  type: :development
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ name: celluloid-essentials
146
+ prerelease: false
147
+ type: :runtime
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ name: celluloid-supervision
160
+ prerelease: false
161
+ type: :runtime
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ name: celluloid-pool
174
+ prerelease: false
175
+ type: :runtime
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ name: celluloid-fsm
188
+ prerelease: false
189
+ type: :runtime
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - '>='
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ name: celluloid-extras
91
202
  prerelease: false
203
+ type: :runtime
92
204
  version_requirements: !ruby/object:Gem::Requirement
93
205
  requirements:
94
- - - ">="
206
+ - - '>='
95
207
  - !ruby/object:Gem::Version
96
208
  version: '0'
97
- description: Celluloid enables people to build concurrent programs out of concurrent
98
- objects just as easily as they build sequential programs out of sequential objects
209
+ - !ruby/object:Gem::Dependency
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ~>
213
+ - !ruby/object:Gem::Version
214
+ version: 4.0.0
215
+ name: timers
216
+ prerelease: false
217
+ type: :runtime
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ~>
221
+ - !ruby/object:Gem::Version
222
+ version: 4.0.0
223
+ - !ruby/object:Gem::Dependency
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - '>='
227
+ - !ruby/object:Gem::Version
228
+ version: 0.1.2
229
+ name: rspec-logsplit
230
+ prerelease: false
231
+ type: :runtime
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - '>='
235
+ - !ruby/object:Gem::Version
236
+ version: 0.1.2
237
+ description: Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects
99
238
  email:
100
239
  - tony.arcieri@gmail.com
101
240
  executables: []
102
241
  extensions: []
103
242
  extra_rdoc_files: []
104
243
  files:
244
+ - CHANGES.md
105
245
  - LICENSE.txt
106
246
  - README.md
247
+ - culture/CODE_OF_CONDUCT.md
248
+ - culture/Gemfile
249
+ - culture/README.md
250
+ - culture/Rakefile
251
+ - culture/SYNC.md
252
+ - culture/celluloid-culture.gemspec
253
+ - culture/gems/README.md
254
+ - culture/gems/dependencies.yml
255
+ - culture/gems/loader.rb
256
+ - culture/rubocop/README.md
257
+ - culture/rubocop/lint.yml
258
+ - culture/rubocop/metrics.yml
259
+ - culture/rubocop/rubocop.yml
260
+ - culture/rubocop/style.yml
261
+ - culture/spec/gems_spec.rb
262
+ - culture/spec/spec_helper.rb
263
+ - culture/spec/sync_spec.rb
264
+ - culture/sync.rb
265
+ - culture/tasks/rspec.rake
266
+ - culture/tasks/rubocop.rake
267
+ - examples/basic_usage.rb
268
+ - examples/futures.rb
269
+ - examples/ring.rb
270
+ - examples/simple_pmap.rb
271
+ - examples/timers.rb
107
272
  - lib/celluloid.rb
108
273
  - lib/celluloid/actor.rb
109
274
  - lib/celluloid/actor_system.rb
110
275
  - lib/celluloid/autostart.rb
111
- - lib/celluloid/call_chain.rb
276
+ - lib/celluloid/backported.rb
277
+ - lib/celluloid/call/async.rb
278
+ - lib/celluloid/call/block.rb
279
+ - lib/celluloid/call/sync.rb
112
280
  - lib/celluloid/calls.rb
113
281
  - lib/celluloid/cell.rb
114
282
  - lib/celluloid/condition.rb
115
283
  - lib/celluloid/core_ext.rb
116
- - lib/celluloid/cpu_counter.rb
117
- - lib/celluloid/evented_mailbox.rb
284
+ - lib/celluloid/current.rb
285
+ - lib/celluloid/deprecate.rb
118
286
  - lib/celluloid/exceptions.rb
119
287
  - lib/celluloid/fiber.rb
120
- - lib/celluloid/fsm.rb
121
288
  - lib/celluloid/future.rb
122
- - lib/celluloid/handlers.rb
123
- - lib/celluloid/internal_pool.rb
124
- - lib/celluloid/legacy.rb
125
- - lib/celluloid/links.rb
126
- - lib/celluloid/logger.rb
289
+ - lib/celluloid/group.rb
290
+ - lib/celluloid/group/manager.rb
291
+ - lib/celluloid/group/pool.rb
292
+ - lib/celluloid/group/spawner.rb
127
293
  - lib/celluloid/logging.rb
128
- - lib/celluloid/logging/incident.rb
129
- - lib/celluloid/logging/incident_logger.rb
130
- - lib/celluloid/logging/incident_reporter.rb
131
- - lib/celluloid/logging/log_event.rb
132
- - lib/celluloid/logging/ring_buffer.rb
133
294
  - lib/celluloid/mailbox.rb
134
- - lib/celluloid/method.rb
135
- - lib/celluloid/notifications.rb
136
- - lib/celluloid/pool_manager.rb
137
- - lib/celluloid/probe.rb
138
- - lib/celluloid/properties.rb
139
- - lib/celluloid/proxies/abstract_proxy.rb
140
- - lib/celluloid/proxies/actor_proxy.rb
141
- - lib/celluloid/proxies/async_proxy.rb
142
- - lib/celluloid/proxies/block_proxy.rb
143
- - lib/celluloid/proxies/cell_proxy.rb
144
- - lib/celluloid/proxies/future_proxy.rb
145
- - lib/celluloid/proxies/sync_proxy.rb
146
- - lib/celluloid/receivers.rb
147
- - lib/celluloid/registry.rb
148
- - lib/celluloid/responses.rb
295
+ - lib/celluloid/mailbox/evented.rb
296
+ - lib/celluloid/notices.rb
297
+ - lib/celluloid/proxies.rb
298
+ - lib/celluloid/proxy/abstract.rb
299
+ - lib/celluloid/proxy/actor.rb
300
+ - lib/celluloid/proxy/async.rb
301
+ - lib/celluloid/proxy/block.rb
302
+ - lib/celluloid/proxy/cell.rb
303
+ - lib/celluloid/proxy/future.rb
304
+ - lib/celluloid/proxy/sync.rb
149
305
  - lib/celluloid/rspec.rb
150
- - lib/celluloid/rspec/actor_examples.rb
151
- - lib/celluloid/rspec/example_actor_class.rb
152
- - lib/celluloid/rspec/mailbox_examples.rb
153
- - lib/celluloid/rspec/task_examples.rb
154
- - lib/celluloid/signals.rb
155
- - lib/celluloid/stack_dump.rb
156
- - lib/celluloid/supervision_group.rb
157
- - lib/celluloid/supervisor.rb
158
306
  - lib/celluloid/system_events.rb
159
- - lib/celluloid/task_set.rb
160
- - lib/celluloid/tasks.rb
161
- - lib/celluloid/tasks/task_fiber.rb
162
- - lib/celluloid/tasks/task_thread.rb
307
+ - lib/celluloid/task.rb
308
+ - lib/celluloid/task/fibered.rb
309
+ - lib/celluloid/task/threaded.rb
163
310
  - lib/celluloid/test.rb
164
311
  - lib/celluloid/thread.rb
165
- - lib/celluloid/thread_handle.rb
166
- - lib/celluloid/uuid.rb
312
+ - lib/celluloid/version.rb
167
313
  - spec/celluloid/actor_spec.rb
168
314
  - spec/celluloid/actor_system_spec.rb
169
315
  - spec/celluloid/block_spec.rb
170
316
  - spec/celluloid/calls_spec.rb
171
317
  - spec/celluloid/condition_spec.rb
172
- - spec/celluloid/cpu_counter_spec.rb
173
318
  - spec/celluloid/evented_mailbox_spec.rb
174
- - spec/celluloid/fsm_spec.rb
175
319
  - spec/celluloid/future_spec.rb
176
- - spec/celluloid/internal_pool_spec.rb
177
- - spec/celluloid/links_spec.rb
178
- - spec/celluloid/logging/ring_buffer_spec.rb
320
+ - spec/celluloid/group/elastic_spec.rb
321
+ - spec/celluloid/group/manager_spec.rb
322
+ - spec/celluloid/group/pool_spec.rb
323
+ - spec/celluloid/group/spawner_spec.rb
324
+ - spec/celluloid/mailbox/evented_spec.rb
179
325
  - spec/celluloid/mailbox_spec.rb
180
- - spec/celluloid/notifications_spec.rb
181
- - spec/celluloid/pool_spec.rb
182
- - spec/celluloid/probe_spec.rb
183
- - spec/celluloid/properties_spec.rb
184
- - spec/celluloid/registry_spec.rb
185
- - spec/celluloid/stack_dump_spec.rb
186
- - spec/celluloid/supervision_group_spec.rb
187
- - spec/celluloid/supervisor_spec.rb
188
- - spec/celluloid/tasks/task_fiber_spec.rb
189
- - spec/celluloid/tasks/task_thread_spec.rb
190
- - spec/celluloid/thread_handle_spec.rb
326
+ - spec/celluloid/misc/leak_spec.rb
327
+ - spec/celluloid/task/fibered_spec.rb
328
+ - spec/celluloid/task/threaded_spec.rb
191
329
  - spec/celluloid/timer_spec.rb
192
- - spec/celluloid/uuid_spec.rb
330
+ - spec/deprecate/actor_system_spec.rb
331
+ - spec/deprecate/block_spec.rb
332
+ - spec/deprecate/calls_spec.rb
333
+ - spec/deprecate/evented_mailbox_spec.rb
334
+ - spec/deprecate/future_spec.rb
335
+ - spec/deprecate/internal_pool_spec.rb
336
+ - spec/shared/actor_examples.rb
337
+ - spec/shared/group_examples.rb
338
+ - spec/shared/mailbox_examples.rb
339
+ - spec/shared/task_examples.rb
193
340
  - spec/spec_helper.rb
341
+ - spec/support/coverage.rb
342
+ - spec/support/crash_checking.rb
343
+ - spec/support/debugging.rb
344
+ - spec/support/env.rb
345
+ - spec/support/examples/actor_class.rb
346
+ - spec/support/examples/evented_mailbox_class.rb
347
+ - spec/support/includer.rb
348
+ - spec/support/logging.rb
349
+ - spec/support/loose_threads.rb
350
+ - spec/support/reset_class_variables.rb
351
+ - spec/support/sleep_and_wait.rb
352
+ - spec/support/split_logs.rb
353
+ - spec/support/stubbing.rb
194
354
  homepage: https://github.com/celluloid/celluloid
195
355
  licenses:
196
356
  - MIT
197
357
  metadata: {}
198
- post_install_message:
358
+ post_install_message:
199
359
  rdoc_options: []
200
360
  require_paths:
201
361
  - lib
202
362
  required_ruby_version: !ruby/object:Gem::Requirement
203
363
  requirements:
204
- - - ">="
364
+ - - '>='
205
365
  - !ruby/object:Gem::Version
206
366
  version: 1.9.2
207
367
  required_rubygems_version: !ruby/object:Gem::Requirement
208
368
  requirements:
209
- - - ">="
369
+ - - '>='
210
370
  - !ruby/object:Gem::Version
211
371
  version: 1.3.6
212
372
  requirements: []
213
- rubyforge_project:
214
- rubygems_version: 2.2.2
215
- signing_key:
373
+ rubyforge_project:
374
+ rubygems_version: 2.4.6
375
+ signing_key:
216
376
  specification_version: 4
217
377
  summary: Actor-based concurrent object framework for Ruby
218
378
  test_files: []