celluloid-zmq 0.0.3 → 0.0.4
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.
- data/CHANGES.md +8 -0
- data/lib/celluloid/zmq/mailbox.rb +3 -2
- data/lib/celluloid/zmq/reactor.rb +6 -1
- data/lib/celluloid/zmq/version.rb +1 -1
- data/lib/celluloid/zmq/waker.rb +4 -4
- metadata +12 -12
data/CHANGES.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.0.4
|
2
|
+
-----
|
3
|
+
* Fix bugs in 0MQ polling (timeouts were being processed 1000x too fast)
|
4
|
+
|
5
|
+
0.0.3
|
6
|
+
-----
|
7
|
+
* Fix botched dependencies (celluloid-zmq does not depend on redis)
|
8
|
+
|
1
9
|
0.0.2
|
2
10
|
-----
|
3
11
|
* Pure blocking 0MQ reactor using a ZMQ::PAIR socket as the waker
|
@@ -3,9 +3,10 @@ module Celluloid
|
|
3
3
|
# A Celluloid mailbox for Actors that wait on 0MQ sockets
|
4
4
|
class Mailbox < Celluloid::IO::Mailbox
|
5
5
|
def initialize
|
6
|
+
# More APIs and less monkeypatching would be useful here
|
6
7
|
@messages = []
|
7
|
-
@lock
|
8
|
-
@waker
|
8
|
+
@lock = Mutex.new
|
9
|
+
@waker = Waker.new
|
9
10
|
@reactor = Reactor.new(@waker)
|
10
11
|
end
|
11
12
|
end
|
@@ -43,7 +43,12 @@ module Celluloid
|
|
43
43
|
# Run the reactor, waiting for events, and calling the given block if
|
44
44
|
# the reactor is awoken by the waker
|
45
45
|
def run_once(timeout = nil)
|
46
|
-
timeout
|
46
|
+
if timeout
|
47
|
+
timeout *= 1000 # Poller uses millisecond increments
|
48
|
+
else
|
49
|
+
timeout = :blocking
|
50
|
+
end
|
51
|
+
|
47
52
|
rc = @poller.poll(timeout)
|
48
53
|
|
49
54
|
unless ::ZMQ::Util.resultcode_ok? rc
|
data/lib/celluloid/zmq/waker.rb
CHANGED
@@ -36,11 +36,11 @@ module Celluloid
|
|
36
36
|
# Wait for another thread to signal this Waker
|
37
37
|
def wait
|
38
38
|
message = ''
|
39
|
-
|
39
|
+
rc = @receiver.recv_string message
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
unless ::ZMQ::Util.resultcode_ok? rc and message == PAYLOAD
|
42
|
+
raise DeadWakerError, "error receiving ZMQ string: #{::ZMQ::Util.error_string}"
|
43
|
+
end
|
44
44
|
end
|
45
45
|
|
46
46
|
# Clean up the IO objects associated with this waker
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid-zmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: celluloid
|
16
|
-
requirement: &
|
16
|
+
requirement: &70327771453460 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.6.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70327771453460
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: ffi
|
27
|
-
requirement: &
|
27
|
+
requirement: &70327771452820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70327771452820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ffi-rzmq
|
38
|
-
requirement: &
|
38
|
+
requirement: &70327771450760 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70327771450760
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70327771450140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70327771450140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70327771449480 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 2.7.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70327771449480
|
69
69
|
description: Celluloid bindings to the ffi-rzmq library
|
70
70
|
email:
|
71
71
|
- tony.arcieri@gmail.com
|