zmachine 0.4.1 → 0.4.2

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 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