quartz 1.0.1 → 1.1.0

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