celluloid-essentials 0.20.0.pre14 → 0.20.0.pre15
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 +4 -4
- data/Gemfile +11 -12
- data/Rakefile +4 -4
- data/celluloid-essentials.gemspec +10 -10
- data/lib/celluloid/essentials.rb +20 -20
- data/lib/celluloid/internals/cpu_counter.rb +4 -4
- data/lib/celluloid/internals/handlers.rb +1 -1
- data/lib/celluloid/internals/links.rb +2 -2
- data/lib/celluloid/internals/logger.rb +1 -1
- data/lib/celluloid/internals/method.rb +2 -2
- data/lib/celluloid/internals/receivers.rb +2 -2
- data/lib/celluloid/internals/registry.rb +22 -24
- data/lib/celluloid/internals/responses.rb +1 -1
- data/lib/celluloid/internals/signals.rb +1 -1
- data/lib/celluloid/internals/stack.rb +9 -13
- data/lib/celluloid/internals/stack/dump.rb +0 -2
- data/lib/celluloid/internals/stack/states.rb +1 -3
- data/lib/celluloid/internals/stack/summary.rb +0 -2
- data/lib/celluloid/internals/task_set.rb +6 -6
- data/lib/celluloid/internals/thread_handle.rb +1 -1
- data/lib/celluloid/internals/uuid.rb +1 -1
- data/lib/celluloid/logging/incident.rb +1 -1
- data/lib/celluloid/logging/incident_logger.rb +37 -19
- data/lib/celluloid/logging/incident_reporter.rb +3 -3
- data/lib/celluloid/logging/log_event.rb +1 -1
- data/lib/celluloid/logging/ring_buffer.rb +2 -4
- data/lib/celluloid/notifications.rb +2 -2
- data/lib/celluloid/probe.rb +2 -2
- data/tasks/benchmarks.rake +2 -2
- data/tasks/rspec.rake +2 -2
- data/tasks/rubocop.rake +2 -2
- metadata +57 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46564f5f9b5d8bf0d1197335f51afab20358fd22
|
4
|
+
data.tar.gz: 6db7c9f99821d7f0123faf1deba57f5f1a25d1c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da203f97b0e542a2ce415d8a880cea0cc93101ce048cf8dea788b66d0ef368c833bbc87130a05462477bc3abb02cef401f9f3a030b612ec2303ca9de2c9008eb
|
7
|
+
data.tar.gz: 38cfc2da22d6af56869b1a936d6baedd38269c54d118a118486024977e6be45bdb0097e512bba4f7cab92ea6e5c3cab9936ba4a9c1f780210f2c56ccc4479c5c
|
data/Gemfile
CHANGED
@@ -1,25 +1,24 @@
|
|
1
1
|
require File.expand_path("../culture/sync", __FILE__)
|
2
|
-
source
|
3
|
-
|
2
|
+
source "https://rubygems.org"
|
4
3
|
|
5
4
|
gemspec development_group: :gem_build_tools
|
6
5
|
|
7
6
|
group :development do
|
8
|
-
gem
|
9
|
-
#de gem 'guard'
|
10
|
-
#de gem 'rb-fsevent', '~> 0.9.1' if RUBY_PLATFORM =~ /darwin/
|
11
|
-
#de gem 'guard-rspec'
|
7
|
+
gem "pry"
|
8
|
+
# de gem 'guard'
|
9
|
+
# de gem 'rb-fsevent', '~> 0.9.1' if RUBY_PLATFORM =~ /darwin/
|
10
|
+
# de gem 'guard-rspec'
|
12
11
|
end
|
13
12
|
|
14
13
|
group :test do
|
15
|
-
gem
|
16
|
-
gem
|
17
|
-
gem
|
18
|
-
gem
|
14
|
+
gem "dotenv", "~> 2.0"
|
15
|
+
gem "nenv"
|
16
|
+
gem "benchmark_suite"
|
17
|
+
gem "rspec", "~> 3.2"
|
19
18
|
end
|
20
19
|
|
21
20
|
group :gem_build_tools do
|
22
|
-
gem
|
21
|
+
gem "rake"
|
23
22
|
end
|
24
23
|
|
25
|
-
Celluloid::Sync.gems(self)
|
24
|
+
Celluloid::Sync.gems(self)
|
data/Rakefile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
1
|
+
require "bundler/gem_tasks"
|
2
2
|
|
3
|
-
Dir[
|
3
|
+
Dir["tasks/**/*.rake"].each { |task| load task }
|
4
4
|
|
5
|
-
default_tasks = [
|
6
|
-
default_tasks <<
|
5
|
+
default_tasks = ["spec"]
|
6
|
+
default_tasks << "rubocop" unless ENV["CI"]
|
7
7
|
task default: default_tasks
|
8
8
|
|
9
9
|
task ci: %w(spec benchmark)
|
@@ -3,22 +3,22 @@
|
|
3
3
|
require File.expand_path("../culture/sync", __FILE__)
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
|
-
gem.name =
|
7
|
-
gem.version =
|
6
|
+
gem.name = "celluloid-essentials"
|
7
|
+
gem.version = "0.20.0.pre15"
|
8
8
|
gem.platform = Gem::Platform::RUBY
|
9
|
-
gem.summary =
|
10
|
-
gem.description =
|
11
|
-
gem.licenses = [
|
9
|
+
gem.summary = "Internally used tools, and superstructural dependencies of Celluloid"
|
10
|
+
gem.description = "Notifications, Internals, Logging, Probe, and essential Celluloid pieces demanding Supervision"
|
11
|
+
gem.licenses = ["MIT"]
|
12
12
|
|
13
13
|
gem.authors = ["Tony Arcieri", "digitalextremist //"]
|
14
|
-
gem.email = [
|
15
|
-
gem.homepage =
|
14
|
+
gem.email = ["tony.arcieri@gmail.com", "code@extremist.digital"]
|
15
|
+
gem.homepage = "https://github.com/celluloid/celluloid-essentials"
|
16
16
|
|
17
|
-
gem.required_ruby_version =
|
18
|
-
gem.required_rubygems_version =
|
17
|
+
gem.required_ruby_version = ">= 1.9.2"
|
18
|
+
gem.required_rubygems_version = ">= 1.3.6"
|
19
19
|
|
20
20
|
gem.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|examples|spec|features)/}) }
|
21
|
-
gem.require_path =
|
21
|
+
gem.require_path = "lib"
|
22
22
|
|
23
23
|
Celluloid::Sync.gems(gem)
|
24
24
|
end
|
data/lib/celluloid/essentials.rb
CHANGED
@@ -1,32 +1,32 @@
|
|
1
1
|
module Celluloid::Internals; end
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
3
|
+
require "celluloid/internals/call_chain"
|
4
|
+
require "celluloid/internals/cpu_counter"
|
5
|
+
require "celluloid/internals/links"
|
6
|
+
require "celluloid/internals/logger"
|
7
|
+
require "celluloid/internals/method"
|
8
|
+
require "celluloid/internals/properties"
|
9
|
+
require "celluloid/internals/handlers"
|
10
|
+
require "celluloid/internals/receivers"
|
11
|
+
require "celluloid/internals/registry"
|
12
|
+
require "celluloid/internals/responses"
|
13
|
+
require "celluloid/internals/signals"
|
14
|
+
require "celluloid/internals/task_set"
|
15
|
+
require "celluloid/internals/thread_handle"
|
16
|
+
require "celluloid/internals/uuid"
|
17
17
|
|
18
|
-
require
|
18
|
+
require "celluloid/internals/stack"
|
19
19
|
|
20
|
-
require
|
21
|
-
require
|
20
|
+
require "celluloid/notifications"
|
21
|
+
require "celluloid/logging"
|
22
22
|
|
23
23
|
if $CELLULOID_BACKPORTED
|
24
24
|
Celluloid::Registry = Celluloid::Internals::Registry
|
25
25
|
Celluloid::Logger = Celluloid::Internals::Logger
|
26
26
|
end
|
27
27
|
|
28
|
-
require
|
28
|
+
require "celluloid/supervision"
|
29
29
|
|
30
30
|
# TODO: Remove unneeded gem requirements once the gems are well known.
|
31
|
-
require
|
32
|
-
require
|
31
|
+
require "celluloid/pool"
|
32
|
+
require "celluloid/fsm"
|
@@ -14,20 +14,20 @@ module Celluloid
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def from_env
|
17
|
-
result = ENV[
|
17
|
+
result = ENV["NUMBER_OF_PROCESSORS"]
|
18
18
|
result if result
|
19
19
|
end
|
20
20
|
|
21
21
|
def from_sysdev
|
22
|
-
::IO.read(
|
22
|
+
::IO.read("/sys/devices/system/cpu/present").split("-").last.to_i + 1
|
23
23
|
rescue Errno::ENOENT
|
24
|
-
result = Dir[
|
24
|
+
result = Dir["/sys/devices/system/cpu/cpu*"].count { |n| n =~ /cpu\d+/ }
|
25
25
|
result unless result.zero?
|
26
26
|
end
|
27
27
|
|
28
28
|
def from_sysctl
|
29
29
|
result = `sysctl -n hw.ncpu`
|
30
|
-
result if
|
30
|
+
result if $CHILD_STATUS.success?
|
31
31
|
rescue Errno::ENOENT
|
32
32
|
end
|
33
33
|
end
|
@@ -15,7 +15,7 @@ module Celluloid
|
|
15
15
|
|
16
16
|
# Do links include the given actor?
|
17
17
|
def include?(actor)
|
18
|
-
@links.
|
18
|
+
@links.key? actor.mailbox.address
|
19
19
|
end
|
20
20
|
|
21
21
|
# Remove an actor from the links
|
@@ -30,7 +30,7 @@ module Celluloid
|
|
30
30
|
|
31
31
|
# Generate a string representation
|
32
32
|
def inspect
|
33
|
-
links =
|
33
|
+
links = map(&:inspect).join(",")
|
34
34
|
"#<#{self.class}[#{links}]>"
|
35
35
|
end
|
36
36
|
end
|
@@ -86,7 +86,7 @@ module Celluloid
|
|
86
86
|
|
87
87
|
# Format an exception message
|
88
88
|
def format_exception(exception)
|
89
|
-
str = "#{exception.class}: #{exception
|
89
|
+
str = "#{exception.class}: #{exception}\n\t"
|
90
90
|
if exception.backtrace
|
91
91
|
str << exception.backtrace.join("\n\t")
|
92
92
|
else
|
@@ -3,7 +3,7 @@ module Celluloid
|
|
3
3
|
# Method handles that route through an actor proxy
|
4
4
|
class Method
|
5
5
|
def initialize(proxy, name)
|
6
|
-
|
6
|
+
fail NoMethodError, "undefined method `#{name}'" unless proxy.respond_to? name
|
7
7
|
|
8
8
|
@proxy, @name = proxy, name
|
9
9
|
@klass = @proxy.class
|
@@ -30,4 +30,4 @@ module Celluloid
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
-
end
|
33
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "thread"
|
2
2
|
|
3
3
|
module Celluloid
|
4
4
|
module Internals
|
@@ -15,20 +15,18 @@ module Celluloid
|
|
15
15
|
# Register an Actor
|
16
16
|
def []=(name, actor)
|
17
17
|
if name == :root
|
18
|
-
@registry.synchronize
|
18
|
+
@registry.synchronize do
|
19
19
|
@root = actor
|
20
|
-
|
20
|
+
end
|
21
21
|
else
|
22
22
|
actor_singleton = class << actor; self; end
|
23
23
|
unless actor_singleton.ancestors.include? Proxy::Abstract
|
24
|
-
|
24
|
+
fail TypeError, "not an actor"
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
31
|
-
=end
|
27
|
+
# if actor.class.ancestors.include? Supervision::Container
|
28
|
+
# puts "Supervisor: #{actor.links.inspect}"
|
29
|
+
# end
|
32
30
|
@registry.synchronize do
|
33
31
|
@actors[name.to_sym] = actor
|
34
32
|
end
|
@@ -36,46 +34,46 @@ module Celluloid
|
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
39
|
-
def add(name,actor,branch=:services)
|
37
|
+
def add(name, actor, branch=:services)
|
40
38
|
set(name, actor)
|
41
|
-
@registry.synchronize
|
39
|
+
@registry.synchronize do
|
42
40
|
unless @branches.key? branch
|
43
41
|
@branches[branch] = []
|
44
|
-
self.class.instance_eval
|
42
|
+
self.class.instance_eval do
|
45
43
|
remove_method(branch) rescue nil
|
46
44
|
define_method(branch) { @branches[branch] }
|
47
|
-
|
45
|
+
end
|
48
46
|
@branches[branch] << name
|
49
47
|
end
|
50
48
|
@index[name.to_sym] = branch
|
51
|
-
|
49
|
+
end
|
52
50
|
end
|
53
51
|
|
54
52
|
# Retrieve an actor by name
|
55
53
|
def [](name)
|
56
54
|
return @root if name == :root
|
57
|
-
@registry.synchronize
|
55
|
+
@registry.synchronize do
|
58
56
|
@actors[name.to_sym]
|
59
|
-
|
57
|
+
end
|
60
58
|
end
|
61
59
|
|
62
60
|
def branch(name)
|
63
|
-
@registry.synchronize
|
64
|
-
@index.select { |a,b| b == name }
|
65
|
-
|
61
|
+
@registry.synchronize do
|
62
|
+
@index.select { |a, b| b == name }
|
63
|
+
end
|
66
64
|
end
|
67
65
|
|
68
66
|
alias_method :get, :[]
|
69
67
|
alias_method :set, :[]=
|
70
68
|
|
71
69
|
def delete(name)
|
72
|
-
@registry.synchronize
|
70
|
+
@registry.synchronize do
|
73
71
|
@index.delete name.to_sym
|
74
72
|
@actors.delete name.to_sym
|
75
|
-
|
73
|
+
end
|
76
74
|
end
|
77
75
|
|
78
|
-
def include?
|
76
|
+
def include?(name)
|
79
77
|
names.include? name
|
80
78
|
end
|
81
79
|
|
@@ -92,11 +90,11 @@ module Celluloid
|
|
92
90
|
# can be used in testing to clear the registry
|
93
91
|
def clear
|
94
92
|
hash = nil
|
95
|
-
@registry.synchronize
|
93
|
+
@registry.synchronize do
|
96
94
|
hash = @actors.dup
|
97
95
|
@actors.clear
|
98
96
|
@index.clear
|
99
|
-
|
97
|
+
end
|
100
98
|
hash
|
101
99
|
end
|
102
100
|
end
|
@@ -8,7 +8,7 @@ module Celluloid
|
|
8
8
|
|
9
9
|
# Wait for the given signal and return the associated value
|
10
10
|
def wait(name)
|
11
|
-
|
11
|
+
fail "cannot wait for signals while exclusive" if Celluloid.exclusive?
|
12
12
|
|
13
13
|
@conditions[name] ||= Condition.new
|
14
14
|
@conditions[name].wait
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Celluloid
|
2
2
|
module Internals
|
3
3
|
class Stack
|
4
|
-
|
5
4
|
attr_accessor :actors, :threads
|
6
5
|
|
7
6
|
def initialize(threads)
|
@@ -13,21 +12,19 @@ module Celluloid
|
|
13
12
|
def snapshot(backtrace=nil)
|
14
13
|
@group.each do |thread|
|
15
14
|
if thread.role == :actor
|
16
|
-
@actors << snapshot_actor(thread.actor,backtrace) if thread.actor
|
15
|
+
@actors << snapshot_actor(thread.actor, backtrace) if thread.actor
|
17
16
|
else
|
18
|
-
@threads << snapshot_thread(thread,backtrace)
|
17
|
+
@threads << snapshot_thread(thread, backtrace)
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
|
-
def snapshot_actor(actor,backtrace=nil)
|
22
|
+
def snapshot_actor(actor, backtrace=nil)
|
24
23
|
state = ActorState.new
|
25
24
|
state.id = actor.object_id
|
26
25
|
|
27
26
|
# TODO: delegate to the behavior
|
28
|
-
if actor.behavior.is_a?(Cell)
|
29
|
-
state.cell = snapshot_cell(actor.behavior)
|
30
|
-
end
|
27
|
+
state.cell = snapshot_cell(actor.behavior) if actor.behavior.is_a?(Cell)
|
31
28
|
|
32
29
|
tasks = actor.tasks
|
33
30
|
if tasks.empty?
|
@@ -37,7 +34,7 @@ module Celluloid
|
|
37
34
|
state.tasks = tasks.to_a.map { |t| TaskState.new(t.class, t.type, t.meta, t.status, t.backtrace) }
|
38
35
|
end
|
39
36
|
|
40
|
-
state.backtrace = actor.thread.backtrace if backtrace
|
37
|
+
state.backtrace = actor.thread.backtrace if backtrace && actor.thread
|
41
38
|
state
|
42
39
|
end
|
43
40
|
|
@@ -48,7 +45,7 @@ module Celluloid
|
|
48
45
|
state
|
49
46
|
end
|
50
47
|
|
51
|
-
def snapshot_thread(thread,backtrace=nil)
|
48
|
+
def snapshot_thread(thread, backtrace=nil)
|
52
49
|
backtrace = begin
|
53
50
|
thread.backtrace
|
54
51
|
rescue NoMethodError # for Rubinius < 2.5.2.c145
|
@@ -66,11 +63,10 @@ module Celluloid
|
|
66
63
|
output.print thread.dump
|
67
64
|
end
|
68
65
|
end
|
69
|
-
|
70
66
|
end
|
71
67
|
end
|
72
68
|
end
|
73
69
|
|
74
|
-
require
|
75
|
-
require
|
76
|
-
require
|
70
|
+
require "celluloid/internals/stack/states"
|
71
|
+
require "celluloid/internals/stack/dump"
|
72
|
+
require "celluloid/internals/stack/summary"
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Celluloid
|
2
2
|
module Internals
|
3
3
|
class Stack
|
4
|
-
|
5
4
|
module DisplayBacktrace
|
6
5
|
def display_backtrace(backtrace, output, indent = nil)
|
7
6
|
backtrace ||= ["EMPTY BACKTRACE"]
|
@@ -57,7 +56,7 @@ module Celluloid
|
|
57
56
|
string << "\tTasks:\n"
|
58
57
|
|
59
58
|
tasks.each_with_index do |task, i|
|
60
|
-
string << "\t #{i+1}) #{task.task_class}[#{task.type}]: #{task.status}\n"
|
59
|
+
string << "\t #{i + 1}) #{task.task_class}[#{task.type}]: #{task.status}\n"
|
61
60
|
if task.backtrace
|
62
61
|
string << "\t #{task.meta.inspect}\n"
|
63
62
|
display_backtrace task.backtrace, string, "\t"
|
@@ -68,7 +67,6 @@ module Celluloid
|
|
68
67
|
string
|
69
68
|
end
|
70
69
|
end
|
71
|
-
|
72
70
|
end
|
73
71
|
end
|
74
72
|
end
|
@@ -1,13 +1,13 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "set"
|
2
|
+
require "forwardable"
|
3
3
|
|
4
4
|
module Celluloid
|
5
5
|
module Internals
|
6
|
-
if RUBY_PLATFORM ==
|
7
|
-
require
|
6
|
+
if RUBY_PLATFORM == "java"
|
7
|
+
require "jruby/synchronized"
|
8
8
|
|
9
9
|
class TaskSet
|
10
|
-
extend
|
10
|
+
extend Forwardable
|
11
11
|
include JRuby::Synchronized
|
12
12
|
|
13
13
|
def_delegators :@tasks, :<<, :delete, :first, :empty?, :to_a
|
@@ -16,7 +16,7 @@ module Celluloid
|
|
16
16
|
@tasks = Set.new
|
17
17
|
end
|
18
18
|
end
|
19
|
-
elsif RUBY_ENGINE ==
|
19
|
+
elsif RUBY_ENGINE == "rbx"
|
20
20
|
class TaskSet
|
21
21
|
def initialize
|
22
22
|
@tasks = Set.new
|
@@ -34,7 +34,7 @@ module Celluloid
|
|
34
34
|
|
35
35
|
# Join to a running thread, blocking until it terminates
|
36
36
|
def join(limit = nil)
|
37
|
-
|
37
|
+
fail ThreadError, "Target thread must not be current thread" if @thread == Thread.current
|
38
38
|
@mutex.synchronize { @join.wait(@mutex, limit) if @thread }
|
39
39
|
self
|
40
40
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "logger"
|
2
2
|
module Celluloid
|
3
3
|
# A logger that holds all messages in circular buffers, then flushes the buffers
|
4
4
|
# when an event occurs at a configurable severity threshold.
|
@@ -12,13 +12,13 @@ module Celluloid
|
|
12
12
|
|
13
13
|
def severity_to_string(severity)
|
14
14
|
case severity
|
15
|
-
when TRACE then
|
16
|
-
when DEBUG then
|
17
|
-
when INFO then
|
18
|
-
when WARN then
|
19
|
-
when ERROR then
|
20
|
-
when FATAL then
|
21
|
-
when UNKNOWN then
|
15
|
+
when TRACE then "TRACE"
|
16
|
+
when DEBUG then "DEBUG"
|
17
|
+
when INFO then "INFO"
|
18
|
+
when WARN then "WARN"
|
19
|
+
when ERROR then "ERROR"
|
20
|
+
when FATAL then "FATAL"
|
21
|
+
when UNKNOWN then "UNKNOWN"
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -66,9 +66,7 @@ module Celluloid
|
|
66
66
|
progname ||= @progname
|
67
67
|
severity ||= UNKNOWN
|
68
68
|
|
69
|
-
if severity < @level
|
70
|
-
return event.id
|
71
|
-
end
|
69
|
+
return event.id if severity < @level
|
72
70
|
|
73
71
|
if message.nil? && !block_given?
|
74
72
|
message = progname
|
@@ -88,16 +86,36 @@ module Celluloid
|
|
88
86
|
end
|
89
87
|
event.id
|
90
88
|
end
|
91
|
-
|
89
|
+
alias_method :log, :add
|
92
90
|
|
93
91
|
# See docs for Logger#info
|
94
|
-
def trace
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
def
|
99
|
-
|
100
|
-
|
92
|
+
def trace(progname=nil, &block)
|
93
|
+
add(TRACE, nil, progname, &block)
|
94
|
+
end
|
95
|
+
|
96
|
+
def debug(progname=nil, &block)
|
97
|
+
add(DEBUG, nil, progname, &block)
|
98
|
+
end
|
99
|
+
|
100
|
+
def info(progname=nil, &block)
|
101
|
+
add(INFO, nil, progname, &block)
|
102
|
+
end
|
103
|
+
|
104
|
+
def warn(progname=nil, &block)
|
105
|
+
add(WARN, nil, progname, &block)
|
106
|
+
end
|
107
|
+
|
108
|
+
def error(progname=nil, &block)
|
109
|
+
add(ERROR, nil, progname, &block)
|
110
|
+
end
|
111
|
+
|
112
|
+
def fatal(progname=nil, &block)
|
113
|
+
add(FATAL, nil, progname, &block)
|
114
|
+
end
|
115
|
+
|
116
|
+
def unknown(progname=nil, &block)
|
117
|
+
add(UNKNOWN, nil, progname, &block)
|
118
|
+
end
|
101
119
|
|
102
120
|
def flush
|
103
121
|
messages = []
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "logger"
|
2
2
|
module Celluloid
|
3
3
|
# Subscribes to log incident topics to report on them.
|
4
4
|
class IncidentReporter
|
@@ -7,7 +7,7 @@ module Celluloid
|
|
7
7
|
|
8
8
|
# get the time from the event
|
9
9
|
class Formatter < ::Logger::Formatter
|
10
|
-
def call(severity,
|
10
|
+
def call(severity, _time, progname, msg)
|
11
11
|
super(severity, msg.time, progname, msg.message)
|
12
12
|
end
|
13
13
|
end
|
@@ -19,7 +19,7 @@ module Celluloid
|
|
19
19
|
@silenced = false
|
20
20
|
end
|
21
21
|
|
22
|
-
def report(
|
22
|
+
def report(_topic, incident)
|
23
23
|
return if @silenced
|
24
24
|
|
25
25
|
header = "INCIDENT"
|
@@ -3,7 +3,7 @@ module Celluloid
|
|
3
3
|
class LogEvent
|
4
4
|
attr_accessor :id, :severity, :message, :progname, :time
|
5
5
|
|
6
|
-
def initialize(severity, message, progname, time=Time.now, &
|
6
|
+
def initialize(severity, message, progname, time=Time.now, &_block)
|
7
7
|
# This id should be ordered. For now relies on Celluloid::UUID to be ordered.
|
8
8
|
# May want to use a generation/counter strategy for independence of uuid.
|
9
9
|
@id = Internals::UUID.generate
|
@@ -28,7 +28,7 @@ module Celluloid
|
|
28
28
|
value
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
31
|
+
alias_method :<<, :push
|
32
32
|
|
33
33
|
def shift
|
34
34
|
@mutex.synchronize do
|
@@ -39,9 +39,7 @@ module Celluloid
|
|
39
39
|
def flush
|
40
40
|
values = []
|
41
41
|
@mutex.synchronize do
|
42
|
-
|
43
|
-
values << remove_element
|
44
|
-
end
|
42
|
+
values << remove_element until empty?
|
45
43
|
end
|
46
44
|
values
|
47
45
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Celluloid
|
2
2
|
module Notifications
|
3
3
|
def self.notifier
|
4
|
-
Actor[:notifications_fanout]
|
4
|
+
Actor[:notifications_fanout] || fail(DeadActorError, "notifications fanout actor not running")
|
5
5
|
end
|
6
6
|
|
7
7
|
def publish(pattern, *args)
|
@@ -56,7 +56,7 @@ module Celluloid
|
|
56
56
|
listeners_for(pattern).any?
|
57
57
|
end
|
58
58
|
|
59
|
-
def prune(actor,
|
59
|
+
def prune(actor, _reason=nil)
|
60
60
|
@subscribers.reject! { |s| s.actor == actor }
|
61
61
|
@listeners_for.clear
|
62
62
|
end
|
data/lib/celluloid/probe.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "celluloid"
|
2
2
|
|
3
3
|
$CELLULOID_MONITORING = true
|
4
4
|
|
@@ -7,7 +7,7 @@ module Celluloid
|
|
7
7
|
include Celluloid
|
8
8
|
include Celluloid::Notifications
|
9
9
|
|
10
|
-
NOTIFICATIONS_TOPIC_BASE =
|
10
|
+
NOTIFICATIONS_TOPIC_BASE = "celluloid.events.%s"
|
11
11
|
EVENTS_BUFFER = Queue.new
|
12
12
|
|
13
13
|
class << self
|
data/tasks/benchmarks.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "timeout"
|
2
2
|
|
3
3
|
desc "Run Celluloid benchmarks"
|
4
4
|
task :benchmark do
|
@@ -11,6 +11,6 @@ task :benchmark do
|
|
11
11
|
puts "ERROR: Couldn't complete benchmark: #{ex.class}: #{ex}"
|
12
12
|
puts " #{ex.backtrace.join("\n ")}"
|
13
13
|
|
14
|
-
exit 1 unless ENV[
|
14
|
+
exit 1 unless ENV["CI"] # Hax for running benchmarks on Travis
|
15
15
|
end
|
16
16
|
end
|
data/tasks/rspec.rake
CHANGED
data/tasks/rubocop.rake
CHANGED
metadata
CHANGED
@@ -1,157 +1,158 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid-essentials
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.20.0.
|
4
|
+
version: 0.20.0.pre15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
8
8
|
- digitalextremist //
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04
|
12
|
+
date: 2015-05-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- -
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '0'
|
20
|
-
|
21
|
+
type: :runtime
|
21
22
|
prerelease: false
|
22
|
-
type: :development
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
+
name: rubocop
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- -
|
32
|
+
- - ">="
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '0'
|
34
|
-
name: coveralls
|
35
|
-
prerelease: false
|
36
35
|
type: :development
|
36
|
+
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
+
name: coveralls
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
|
-
- -
|
46
|
+
- - ">="
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: '0'
|
48
|
-
name: celluloid
|
49
|
-
prerelease: false
|
50
49
|
type: :development
|
50
|
+
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
+
name: celluloid
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- -
|
60
|
+
- - ">="
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '0'
|
62
|
-
name: celluloid-supervision
|
63
|
-
prerelease: false
|
64
63
|
type: :development
|
64
|
+
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
+
name: celluloid-supervision
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
|
-
- -
|
74
|
+
- - ">="
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
|
-
|
77
|
+
type: :runtime
|
77
78
|
prerelease: false
|
78
|
-
type: :development
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
|
+
name: celluloid-pool
|
85
86
|
requirement: !ruby/object:Gem::Requirement
|
86
87
|
requirements:
|
87
|
-
- -
|
88
|
+
- - ">="
|
88
89
|
- !ruby/object:Gem::Version
|
89
90
|
version: '0'
|
90
|
-
|
91
|
+
type: :runtime
|
91
92
|
prerelease: false
|
92
|
-
type: :development
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
+
name: celluloid-fsm
|
99
100
|
requirement: !ruby/object:Gem::Requirement
|
100
101
|
requirements:
|
101
|
-
- -
|
102
|
+
- - ">="
|
102
103
|
- !ruby/object:Gem::Version
|
103
104
|
version: '0'
|
104
|
-
|
105
|
+
type: :runtime
|
105
106
|
prerelease: false
|
106
|
-
type: :development
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- -
|
109
|
+
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
|
+
name: celluloid-extras
|
113
114
|
requirement: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
|
-
- -
|
116
|
+
- - ">="
|
116
117
|
- !ruby/object:Gem::Version
|
117
118
|
version: '0'
|
118
|
-
|
119
|
+
type: :runtime
|
119
120
|
prerelease: false
|
120
|
-
type: :development
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- -
|
123
|
+
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
name: timers
|
127
128
|
requirement: !ruby/object:Gem::Requirement
|
128
129
|
requirements:
|
129
|
-
- -
|
130
|
+
- - ">="
|
130
131
|
- !ruby/object:Gem::Version
|
131
132
|
version: '0'
|
132
|
-
|
133
|
+
type: :runtime
|
133
134
|
prerelease: false
|
134
|
-
type: :development
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- -
|
137
|
+
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: '0'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
|
+
name: rspec-logsplit
|
141
142
|
requirement: !ruby/object:Gem::Requirement
|
142
143
|
requirements:
|
143
|
-
- -
|
144
|
+
- - ">="
|
144
145
|
- !ruby/object:Gem::Version
|
145
146
|
version: '0'
|
146
|
-
|
147
|
+
type: :runtime
|
147
148
|
prerelease: false
|
148
|
-
type: :development
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- -
|
151
|
+
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
|
-
description: Notifications, Internals, Logging, Probe, and essential Celluloid pieces
|
154
|
+
description: Notifications, Internals, Logging, Probe, and essential Celluloid pieces
|
155
|
+
demanding Supervision
|
155
156
|
email:
|
156
157
|
- tony.arcieri@gmail.com
|
157
158
|
- code@extremist.digital
|
@@ -159,13 +160,13 @@ executables: []
|
|
159
160
|
extensions: []
|
160
161
|
extra_rdoc_files: []
|
161
162
|
files:
|
162
|
-
- .env-ci
|
163
|
-
- .env-dev
|
164
|
-
- .gitignore
|
165
|
-
- .gitmodules
|
166
|
-
- .rspec
|
167
|
-
- .rubocop.yml
|
168
|
-
- .travis.yml
|
163
|
+
- ".env-ci"
|
164
|
+
- ".env-dev"
|
165
|
+
- ".gitignore"
|
166
|
+
- ".gitmodules"
|
167
|
+
- ".rspec"
|
168
|
+
- ".rubocop.yml"
|
169
|
+
- ".travis.yml"
|
169
170
|
- CHANGES.md
|
170
171
|
- Gemfile
|
171
172
|
- LICENSE.txt
|
@@ -205,24 +206,24 @@ homepage: https://github.com/celluloid/celluloid-essentials
|
|
205
206
|
licenses:
|
206
207
|
- MIT
|
207
208
|
metadata: {}
|
208
|
-
post_install_message:
|
209
|
+
post_install_message:
|
209
210
|
rdoc_options: []
|
210
211
|
require_paths:
|
211
212
|
- lib
|
212
213
|
required_ruby_version: !ruby/object:Gem::Requirement
|
213
214
|
requirements:
|
214
|
-
- -
|
215
|
+
- - ">="
|
215
216
|
- !ruby/object:Gem::Version
|
216
217
|
version: 1.9.2
|
217
218
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
219
|
requirements:
|
219
|
-
- -
|
220
|
+
- - ">="
|
220
221
|
- !ruby/object:Gem::Version
|
221
222
|
version: 1.3.6
|
222
223
|
requirements: []
|
223
|
-
rubyforge_project:
|
224
|
+
rubyforge_project:
|
224
225
|
rubygems_version: 2.4.6
|
225
|
-
signing_key:
|
226
|
+
signing_key:
|
226
227
|
specification_version: 4
|
227
228
|
summary: Internally used tools, and superstructural dependencies of Celluloid
|
228
229
|
test_files: []
|