zmachine 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5e36adcf8fc731b92bdc5d54272901f14caaf5d
4
- data.tar.gz: f51726dae520643f03491643bd2ed65c11d9cad2
3
+ metadata.gz: 678962082b59e5cd14cafa1854e9824d7b92635d
4
+ data.tar.gz: 89c609b6ea82d80371806d62974ae25baab8ad59
5
5
  SHA512:
6
- metadata.gz: 10c3cd9dfab40a3bdbaae428bd168aa99f5ce9536778f31d627d2ce6bb1e6986f83316d55d01eefe70235573264d47852cdd8bf3bd104fc3edc2ea16dd209205
7
- data.tar.gz: c5d87d4b03ac6fbfa883abe2e9850bd2cedaa2bcacfdac2a0a68105afa260a6da5bdd104844140a22ddb1fe833de3352ccee1fe46565a9cb17a6b151ec1dcf5c
6
+ metadata.gz: 06a8730505de6a152fe7d3302b416cb040a3df5c2daa11c75ee0a3b4f4740ec44f3b013438666b63e0b3997e6b5a61fbd3ce1be5c24abac8f8917df38ac68a5d
7
+ data.tar.gz: 080046c1498d52f1052200dbfb5dcf0b80a12f357728bb9bd55fffac4bbdb2b38b2899912061658ba56d07b6917b4f393408b3c8c6997acc8619b53bc6375121
@@ -13,8 +13,8 @@ module ZMachine
13
13
  attr_accessor :debug
14
14
  end
15
15
 
16
- def self.clear_current_reactor
17
- Thread.current[:reactor] = nil
16
+ def self.reactor=(value)
17
+ Thread.current[:reactor] = value
18
18
  end
19
19
 
20
20
  def self.reactor
@@ -100,10 +100,6 @@ module ZMachine
100
100
  reactor.stop_server(signature)
101
101
  end
102
102
 
103
- def self.stop
104
- Reactor.terminate_all_reactors
105
- end
106
-
107
103
  end
108
104
 
109
105
  if ENV['DEBUG']
@@ -12,28 +12,6 @@ module ZMachine
12
12
 
13
13
  class Reactor
14
14
 
15
- @mutex = Mutex.new
16
-
17
- def self.register_reactor(reactor)
18
- @mutex.synchronize do
19
- @reactors ||= []
20
- @reactors << reactor
21
- end
22
- end
23
-
24
- def self.terminate_all_reactors
25
- @mutex.synchronize do
26
- @reactors.each(&:stop_event_loop)
27
- @reactors.clear
28
- end
29
- end
30
-
31
- def self.unregister_reactor(reactor)
32
- @mutex.synchronize do
33
- @reactors.delete(reactor)
34
- end
35
- end
36
-
37
15
  def initialize
38
16
  @heartbeat_interval = ZMachine.heartbeat_interval || 0.5 # coarse grained by default
39
17
  @next_tick_queue = ConcurrentLinkedQueue.new
@@ -101,7 +79,7 @@ module ZMachine
101
79
  ZMachine.logger.debug("zmachine:reactor:#{__method__}") if ZMachine.debug
102
80
  add_shutdown_hook(shutdown_hook) if shutdown_hook
103
81
  begin
104
- Reactor.register_reactor(self)
82
+ Signal.register_shutdown_handler { self.stop_event_loop }
105
83
  @running = true
106
84
  if callback = (callback || block)
107
85
  add_timer(0) { callback.call(self) }
@@ -120,10 +98,8 @@ module ZMachine
120
98
  @shutdown_hooks.pop.call until @shutdown_hooks.empty?
121
99
  @next_tick_queue = ConcurrentLinkedQueue.new
122
100
  @running = false
123
- Reactor.unregister_reactor(self)
124
101
  ZMachine.logger.debug("zmachine:reactor:#{__method__}", stop: :zcontext) if ZMachine.debug
125
- ZContext.destroy
126
- ZMachine.clear_current_reactor
102
+ ZMachine.reactor = nil
127
103
  end
128
104
  end
129
105
 
@@ -1,21 +1,6 @@
1
1
  require 'zmachine'
2
2
  require 'zmachine/channel'
3
3
 
4
- class ZMQ
5
- class Socket
6
- # for performance reason we alias the method here (otherwise it uses reflections all the time!)
7
- # super ugly, since we need to dynamically infer the java class of byte[]
8
- java_alias :send_byte_buffer, :sendByteBuffer, [Java::JavaNio::ByteBuffer.java_class, Java::int]
9
- java_alias :send_byte_array, :send, [[].to_java(:byte).java_class, Java::int]
10
- java_alias :recv_byte_array, :recv, [Java::int]
11
-
12
- def write(buffer)
13
- bytes = send_byte_buffer(buffer, 0)
14
- buffer.position(buffer.position + bytes)
15
- end
16
- end
17
- end
18
-
19
4
  module ZMachine
20
5
  class ZMQChannel < Channel
21
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "zmachine"
5
- spec.version = "0.4.1"
5
+ spec.version = "0.4.2"
6
6
  spec.authors = ["LiquidM, Inc."]
7
7
  spec.email = ["opensource@liquidm.com"]
8
8
  spec.description = %q{pure JRuby multi-threaded mostly EventMachine compatible event loop}
@@ -15,5 +15,5 @@ Gem::Specification.new do |spec|
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ["lib"]
17
17
 
18
- spec.add_dependency "liquid-ext"
18
+ spec.add_dependency "liquid-ext", ">= 3.3.8"
19
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zmachine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - LiquidM, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-25 00:00:00.000000000 Z
11
+ date: 2014-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid-ext
@@ -16,12 +16,12 @@ dependencies:
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.3.8
20
20
  requirement: !ruby/object:Gem::Requirement
21
21
  requirements:
22
22
  - - '>='
23
23
  - !ruby/object:Gem::Version
24
- version: '0'
24
+ version: 3.3.8
25
25
  prerelease: false
26
26
  type: :runtime
27
27
  description: pure JRuby multi-threaded mostly EventMachine compatible event loop