quartz 1.0.1 → 1.1.0

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
  SHA256:
3
- metadata.gz: aa25ac5b2e23d3275dc8ddf835ac87c222a02c859cec534b2f27d94724718d5e
4
- data.tar.gz: f8b05632bcf2448e8c70af23f34befa7da74b7eaa24d69897f89c612f4ff3f46
3
+ metadata.gz: b2e2fe4395a4d05407cfc6b760117f1a157357cda18e21434bc5d099367738af
4
+ data.tar.gz: 8f8aefe61999b809eae8a46a5e3f39a99249ccee623f322237fb38100e4f52b0
5
5
  SHA512:
6
- metadata.gz: c49ebe35162e203c74cc92a21b13d3c907154360582cbfccc4b82de2dc10925cdc70251c398cfc82f41fe0a7f979fc4d7c135679dd8f76b7f77c3c9b4df30810
7
- data.tar.gz: 8b3d3f3f2d04415ee8183064dad980bdb839739e226dbe96748c7e3b0d6f2397fd209437692475a3fcdbf7571dd269c2768012aef3eb3f56c134fa5b45237453
6
+ metadata.gz: 5c105ff943245abb21c857543340778215c43c70d4a14c5f4d23a27674da8a7e6cffa3fa225e4b1b2314b49433482c6aae9bbe4d9e93413079bf16c86ca1a2d2
7
+ data.tar.gz: 02a7eb9ec1e09ccc37d76fc5593069a756606ef9a44f947d945ceb96662755b69abd1dd775ecd0ec36a66ed30db7ced67a371927558102cac8696e90fb014b3b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.1
1
+ 1.1.0
data/lib/quartz/client.rb CHANGED
@@ -16,4 +16,8 @@ class Quartz::Client
16
16
  @structs.keys
17
17
  end
18
18
 
19
+ def forked_mode!
20
+ @process.forked_mode!
21
+ end
22
+
19
23
  end
@@ -12,6 +12,15 @@ class Quartz::GoProcess
12
12
  @processes = []
13
13
  end
14
14
 
15
+ def forked_mode!
16
+ if @forked.nil?
17
+ @forked = true
18
+ return
19
+ end
20
+
21
+ @forked = !@forked
22
+ end
23
+
15
24
  def initialize(opts)
16
25
  @seed = SecureRandom.hex
17
26
  socket_dir = opts.fetch(:socket_dir) { '/tmp' }
@@ -114,6 +123,10 @@ class Quartz::GoProcess
114
123
  end
115
124
 
116
125
  def cleanup
126
+ # If we've forked, there's no need to cleanup since the parent
127
+ # process will.
128
+ return if @forked
129
+
117
130
  unless @killed_go_process
118
131
  Process.kill('SIGTERM', pid)
119
132
  Process.wait(pid)
data/quartz.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: quartz 1.0.1 ruby lib
5
+ # stub: quartz 1.1.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "quartz".freeze
9
- s.version = "1.0.1"
9
+ s.version = "1.1.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["David Huie".freeze]
14
- s.date = "2018-08-09"
14
+ s.date = "2018-08-16"
15
15
  s.description = "A gem for calling Go code from Ruby".freeze
16
16
  s.email = "dahuie@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
54
54
  ]
55
55
  s.homepage = "http://github.com/DavidHuie/quartz".freeze
56
56
  s.licenses = ["MIT".freeze]
57
- s.rubygems_version = "2.7.6".freeze
57
+ s.rubygems_version = "2.7.7".freeze
58
58
  s.summary = "A gem for calling Go code from Ruby".freeze
59
59
 
60
60
  if s.respond_to? :specification_version then
@@ -70,9 +70,22 @@ describe Quartz::GoProcess do
70
70
  it "it kills child processes" do
71
71
  expect(File.exists?(process.temp_file_path)).to be_truthy
72
72
  process.cleanup
73
+ expect(File.exists?(process.temp_file_path)).to be_falsey
73
74
  expect($?.exited?).to be_truthy
74
75
  end
75
76
 
77
+ it 'does not kill child processes if forked' do
78
+ expect(File.exists?(process.temp_file_path)).to be_truthy
79
+ process
80
+ process.forked_mode!
81
+ process.cleanup
82
+ expect(File.exists?(process.temp_file_path)).to be_truthy
83
+
84
+ process.forked_mode!
85
+ process.cleanup
86
+ expect(File.exists?(process.temp_file_path)).to be_falsey
87
+ end
88
+
76
89
  end
77
90
 
78
91
  context 'sockets' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quartz
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Huie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-09 00:00:00.000000000 Z
11
+ date: 2018-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  version: '0'
141
141
  requirements: []
142
142
  rubyforge_project:
143
- rubygems_version: 2.7.6
143
+ rubygems_version: 2.7.7
144
144
  signing_key:
145
145
  specification_version: 4
146
146
  summary: A gem for calling Go code from Ruby