proc-wait3 1.8.1 → 1.9.1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/{CHANGES.rdoc → CHANGES.md} +33 -23
- data/Gemfile +2 -0
- data/{MANIFEST.rdoc → MANIFEST.md} +5 -4
- data/{README.rdoc → README.md} +28 -22
- data/Rakefile +16 -16
- data/doc/wait3.md +225 -0
- data/examples/example_pause.rb +1 -1
- data/ext/extconf.rb +2 -15
- data/ext/proc/wait3.c +46 -39
- data/proc-wait3.gemspec +10 -12
- data/spec/proc_wait3_spec.rb +242 -0
- data.tar.gz.sig +0 -0
- metadata +27 -36
- metadata.gz.sig +0 -0
- data/doc/wait3.txt +0 -192
- data/test/test_proc_wait3.rb +0 -227
data/ext/proc/wait3.c
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
VALUE v_last_status;
|
30
30
|
VALUE v_procstat_struct, v_siginfo_struct, v_usage_struct;
|
31
31
|
|
32
|
-
static void sigproc(int signum);
|
32
|
+
static void sigproc(int signum, siginfo_t* info, void* ucontext);
|
33
33
|
|
34
34
|
/*
|
35
35
|
* Returns true if this process is stopped. This is only returned
|
@@ -163,22 +163,22 @@ static VALUE proc_wait3(int argc, VALUE *argv, VALUE mod){
|
|
163
163
|
v_last_status = rb_struct_new(v_procstat_struct,
|
164
164
|
INT2FIX(pid),
|
165
165
|
INT2FIX(status),
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
166
|
+
rb_float_new((double)r.ru_utime.tv_sec+(double)r.ru_utime.tv_usec/1e6),
|
167
|
+
rb_float_new((double)r.ru_stime.tv_sec+(double)r.ru_stime.tv_usec/1e6),
|
168
|
+
LONG2NUM(r.ru_maxrss),
|
169
|
+
LONG2NUM(r.ru_ixrss),
|
170
|
+
LONG2NUM(r.ru_idrss),
|
171
|
+
LONG2NUM(r.ru_isrss),
|
172
|
+
LONG2NUM(r.ru_minflt),
|
173
|
+
LONG2NUM(r.ru_majflt),
|
174
|
+
LONG2NUM(r.ru_nswap),
|
175
|
+
LONG2NUM(r.ru_inblock),
|
176
|
+
LONG2NUM(r.ru_oublock),
|
177
|
+
LONG2NUM(r.ru_msgsnd),
|
178
|
+
LONG2NUM(r.ru_msgrcv),
|
179
|
+
LONG2NUM(r.ru_nsignals),
|
180
|
+
LONG2NUM(r.ru_nvcsw),
|
181
|
+
LONG2NUM(r.ru_nivcsw),
|
182
182
|
pst_wifstopped(status),
|
183
183
|
pst_wifsignaled(status),
|
184
184
|
pst_wifexited(status),
|
@@ -235,22 +235,22 @@ static VALUE proc_wait4(int argc, VALUE *argv, VALUE mod){
|
|
235
235
|
v_last_status = rb_struct_new(v_procstat_struct,
|
236
236
|
INT2FIX(pid),
|
237
237
|
INT2FIX(status),
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
238
|
+
rb_float_new((double)r.ru_utime.tv_sec+(double)r.ru_utime.tv_usec/1e6),
|
239
|
+
rb_float_new((double)r.ru_stime.tv_sec+(double)r.ru_stime.tv_usec/1e6),
|
240
|
+
LONG2NUM(r.ru_maxrss),
|
241
|
+
LONG2NUM(r.ru_ixrss),
|
242
|
+
LONG2NUM(r.ru_idrss),
|
243
|
+
LONG2NUM(r.ru_isrss),
|
244
|
+
LONG2NUM(r.ru_minflt),
|
245
|
+
LONG2NUM(r.ru_majflt),
|
246
|
+
LONG2NUM(r.ru_nswap),
|
247
|
+
LONG2NUM(r.ru_inblock),
|
248
|
+
LONG2NUM(r.ru_oublock),
|
249
|
+
LONG2NUM(r.ru_msgsnd),
|
250
|
+
LONG2NUM(r.ru_msgrcv),
|
251
|
+
LONG2NUM(r.ru_nsignals),
|
252
|
+
LONG2NUM(r.ru_nvcsw),
|
253
|
+
LONG2NUM(r.ru_nivcsw),
|
254
254
|
pst_wifstopped(status),
|
255
255
|
pst_wifsignaled(status),
|
256
256
|
pst_wifexited(status),
|
@@ -572,7 +572,7 @@ static VALUE proc_waitid(int argc, VALUE* argv, VALUE mod){
|
|
572
572
|
*/
|
573
573
|
static VALUE proc_pause(int argc, VALUE* argv, VALUE mod){
|
574
574
|
VALUE v_signals;
|
575
|
-
int i;
|
575
|
+
int i, res;
|
576
576
|
long len;
|
577
577
|
|
578
578
|
rb_scan_args(argc, argv, "0*", &v_signals);
|
@@ -585,6 +585,7 @@ static VALUE proc_pause(int argc, VALUE* argv, VALUE mod){
|
|
585
585
|
char signame[SIG2STR_MAX];
|
586
586
|
unsigned int max = SIG2STR_MAX;
|
587
587
|
int signum;
|
588
|
+
struct sigaction act, sa;
|
588
589
|
|
589
590
|
for(i = 0; i < len; i++){
|
590
591
|
v_val = rb_ary_shift(v_signals);
|
@@ -613,7 +614,13 @@ static VALUE proc_pause(int argc, VALUE* argv, VALUE mod){
|
|
613
614
|
signum = NUM2INT(v_val);
|
614
615
|
}
|
615
616
|
|
616
|
-
|
617
|
+
memset(&act, 0, sizeof(act));
|
618
|
+
act.sa_flags = SA_SIGINFO;
|
619
|
+
act.sa_sigaction = sigproc;
|
620
|
+
res = sigaction(signum, &act, &sa);
|
621
|
+
|
622
|
+
if(res)
|
623
|
+
rb_sys_fail("sigaction");
|
617
624
|
}
|
618
625
|
}
|
619
626
|
|
@@ -624,7 +631,7 @@ static VALUE proc_pause(int argc, VALUE* argv, VALUE mod){
|
|
624
631
|
* This is just a placeholder proc to prevent the "pause" method from exiting
|
625
632
|
* the program if the appropriate signal is intercepted.
|
626
633
|
*/
|
627
|
-
static void sigproc(int signum){ /* Do nothing */ }
|
634
|
+
static void sigproc(int signum, siginfo_t* info, void* ucontext){ /* Do nothing */ }
|
628
635
|
|
629
636
|
#ifdef HAVE_SIGSEND
|
630
637
|
/*
|
@@ -787,7 +794,7 @@ static VALUE proc_getdtablesize(VALUE mod){
|
|
787
794
|
* Adds the wait3, wait4, waitid, pause, sigsend, and getrusage methods to the
|
788
795
|
* Process module.
|
789
796
|
*/
|
790
|
-
void Init_wait3()
|
797
|
+
void Init_wait3(void)
|
791
798
|
{
|
792
799
|
v_procstat_struct =
|
793
800
|
rb_struct_define("ProcStat","pid","status","utime","stime","maxrss",
|
@@ -954,8 +961,8 @@ void Init_wait3()
|
|
954
961
|
rb_define_const(rb_mProcess, "RUSAGE_THREAD", INT2FIX(RUSAGE_THREAD));
|
955
962
|
#endif
|
956
963
|
|
957
|
-
/* 1.
|
958
|
-
rb_define_const(rb_mProcess, "WAIT3_VERSION", rb_str_freeze(rb_str_new2("1.
|
964
|
+
/* 1.9.0: The version of the proc-wait3 library */
|
965
|
+
rb_define_const(rb_mProcess, "WAIT3_VERSION", rb_str_freeze(rb_str_new2("1.9.1")));
|
959
966
|
|
960
967
|
/* Define this last in our Init_wait3 function */
|
961
968
|
rb_define_readonly_variable("$last_status", &v_last_status);
|
data/proc-wait3.gemspec
CHANGED
@@ -2,30 +2,28 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'proc-wait3'
|
5
|
-
spec.version = '1.
|
5
|
+
spec.version = '1.9.1'
|
6
6
|
spec.author = 'Daniel J. Berger'
|
7
7
|
spec.license = 'Apache-2.0'
|
8
8
|
spec.email = 'djberg96@gmail.com'
|
9
9
|
spec.homepage = 'https://github.com/djberg96/proc-wait3'
|
10
10
|
spec.summary = 'Adds wait3, wait4 and other methods to the Process module'
|
11
|
-
spec.test_file = '
|
11
|
+
spec.test_file = 'spec/proc_wait3_spec.rb'
|
12
12
|
spec.extensions = ['ext/extconf.rb']
|
13
13
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
|
14
14
|
spec.cert_chain = Dir['certs/*']
|
15
15
|
|
16
|
-
spec.extra_rdoc_files = ['CHANGES.rdoc', 'README.rdoc', 'MANIFEST.rdoc', 'ext/proc/wait3.c']
|
17
|
-
|
18
|
-
spec.add_development_dependency('test-unit')
|
19
16
|
spec.add_development_dependency('rake')
|
20
|
-
spec.
|
17
|
+
spec.add_development_dependency('rspec', '~> 3.9')
|
21
18
|
|
22
19
|
spec.metadata = {
|
23
|
-
'homepage_uri'
|
24
|
-
'bug_tracker_uri'
|
25
|
-
'changelog_uri'
|
26
|
-
'documentation_uri'
|
27
|
-
'source_code_uri'
|
28
|
-
'wiki_uri'
|
20
|
+
'homepage_uri' => 'https://github.com/djberg96/proc-wait3',
|
21
|
+
'bug_tracker_uri' => 'https://github.com/djberg96/proc-wait3/issues',
|
22
|
+
'changelog_uri' => 'https://github.com/djberg96/proc-wait3/blob/main/CHANGES.md',
|
23
|
+
'documentation_uri' => 'https://github.com/djberg96/proc-wait3/wiki',
|
24
|
+
'source_code_uri' => 'https://github.com/djberg96/proc-wait3',
|
25
|
+
'wiki_uri' => 'https://github.com/djberg96/proc-wait3/wiki',
|
26
|
+
'rubygems_mfa_required' => 'true'
|
29
27
|
}
|
30
28
|
|
31
29
|
spec.description = <<-EOF
|
@@ -0,0 +1,242 @@
|
|
1
|
+
#######################################################################
|
2
|
+
# proc_wait3_spec.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Ruby proc-wait3 library. You should run these
|
5
|
+
# via the 'rake spec' task.
|
6
|
+
#######################################################################
|
7
|
+
require 'proc/wait3'
|
8
|
+
require 'rspec'
|
9
|
+
require 'rbconfig'
|
10
|
+
|
11
|
+
RSpec.describe Process do
|
12
|
+
# Something in the guts of Ruby was being a pain.
|
13
|
+
Signal.trap('CHLD', 'IGNORE') if RUBY_VERSION.to_f < 3
|
14
|
+
|
15
|
+
let(:solaris) { RbConfig::CONFIG['host_os'] =~ /sunos|solaris/i }
|
16
|
+
let(:darwin) { RbConfig::CONFIG['host_os'] =~ /darwin|osx/i }
|
17
|
+
let(:hpux) { RbConfig::CONFIG['host_os'] =~ /hpux/i }
|
18
|
+
let(:linux) { RbConfig::CONFIG['host_os'] =~ /linux/i }
|
19
|
+
let(:bsd) { RbConfig::CONFIG['host_os'] =~ /bsd|dragonfly/i }
|
20
|
+
|
21
|
+
let(:proc_stat_members) {
|
22
|
+
%i[
|
23
|
+
pid status utime stime maxrss ixrss idrss isrss minflt majflt nswap
|
24
|
+
inblock oublock msgsnd msgrcv nsignals nvcsw nivcsw stopped signaled
|
25
|
+
exited success coredump exitstatus termsig stopsig
|
26
|
+
]
|
27
|
+
}
|
28
|
+
|
29
|
+
before do
|
30
|
+
@proc_stat = nil
|
31
|
+
@pid = nil
|
32
|
+
end
|
33
|
+
|
34
|
+
example "version constant is set to expected value" do
|
35
|
+
expect(Process::WAIT3_VERSION).to eq('1.9.1')
|
36
|
+
expect(Process::WAIT3_VERSION).to be_frozen
|
37
|
+
end
|
38
|
+
|
39
|
+
example "wait3 method is defined" do
|
40
|
+
expect(Process).to respond_to(:wait3)
|
41
|
+
end
|
42
|
+
|
43
|
+
example "wait3 works as expected" do
|
44
|
+
skip 'wait3 test skipped on this platform' if darwin
|
45
|
+
@pid = fork{ sleep 0.5 }
|
46
|
+
expect{ Process.wait3 }.not_to raise_error
|
47
|
+
end
|
48
|
+
|
49
|
+
example "wait3 returns the expected proc status members" do
|
50
|
+
skip 'wait3 test skipped on this platform' if darwin
|
51
|
+
@pid = fork{ sleep 0.5 }
|
52
|
+
expect{ @proc_stat = Process.wait3 }.not_to raise_error
|
53
|
+
expect( @proc_stat.members).to eq(proc_stat_members)
|
54
|
+
end
|
55
|
+
|
56
|
+
example "wait3 with WNOHANG works as expected" do
|
57
|
+
@pid = fork{ sleep 0.5 }
|
58
|
+
expect{ Process.wait3(Process::WNOHANG) }.not_to raise_error
|
59
|
+
end
|
60
|
+
|
61
|
+
example "wait3 sets and returns $last_status to expected values" do
|
62
|
+
skip 'wait3 test skipped on this platform' if darwin
|
63
|
+
@pid = fork{ sleep 0.5 }
|
64
|
+
Process.wait3
|
65
|
+
expect($last_status).to be_kind_of(Struct::ProcStat)
|
66
|
+
expect($last_status).not_to be_nil
|
67
|
+
end
|
68
|
+
|
69
|
+
example "wait3 sets pid and status members of $?" do
|
70
|
+
skip 'wait3 test skipped on this platform' if darwin
|
71
|
+
@pid = fork{ sleep 0.5 }
|
72
|
+
Process.wait3
|
73
|
+
expect($?).not_to be_nil
|
74
|
+
end
|
75
|
+
|
76
|
+
example "wait3 returns frozen struct" do
|
77
|
+
skip 'wait3 test skipped on this platform' if darwin
|
78
|
+
@pid = fork{ sleep 0.5 }
|
79
|
+
struct = Process.wait3
|
80
|
+
expect(struct).to be_frozen
|
81
|
+
end
|
82
|
+
|
83
|
+
example "getdtablesize works as expected" do
|
84
|
+
skip 'getdtablesize skipped on this platform' unless solaris
|
85
|
+
|
86
|
+
expect(Process).to respond_to(:getdtablesize)
|
87
|
+
expect(Process.getdtablesize).to be_kind_of(Fixnum)
|
88
|
+
assert(Process.getdtablesize > 0)
|
89
|
+
end
|
90
|
+
|
91
|
+
example "wait4 method is defined" do
|
92
|
+
skip 'wait4 test skipped on this platform' if hpux
|
93
|
+
expect(Process).to respond_to(:wait4)
|
94
|
+
end
|
95
|
+
|
96
|
+
example "wait4 requires at least one argument" do
|
97
|
+
skip 'wait4 test skipped on this platform' if hpux
|
98
|
+
expect{ Process.wait4 }.to raise_error(ArgumentError)
|
99
|
+
end
|
100
|
+
|
101
|
+
example "wait4 works as expected" do
|
102
|
+
skip 'wait4 test skipped on this platform' if hpux || darwin
|
103
|
+
|
104
|
+
@pid = fork{ sleep 0.5 }
|
105
|
+
expect{ @proc_stat = Process.wait4(@pid) }.not_to raise_error
|
106
|
+
expect(@proc_stat).to be_kind_of(Struct::ProcStat)
|
107
|
+
end
|
108
|
+
|
109
|
+
example "wait4 sets and returns $last_status to expected values" do
|
110
|
+
skip 'wait4 test skipped on this platform' if hpux || darwin
|
111
|
+
|
112
|
+
@pid = fork{ sleep 0.5 }
|
113
|
+
Process.wait4(@pid)
|
114
|
+
expect($last_status).to be_kind_of(Struct::ProcStat)
|
115
|
+
expect($last_status).not_to be_nil
|
116
|
+
end
|
117
|
+
|
118
|
+
example "wait4 sets pid and status members of $?" do
|
119
|
+
skip 'wait4 test skipped on this platform' if hpux || darwin
|
120
|
+
|
121
|
+
@pid = fork{ sleep 0.5 }
|
122
|
+
Process.wait4(@pid)
|
123
|
+
expect($?).not_to be_nil
|
124
|
+
end
|
125
|
+
|
126
|
+
example "wait4 returns frozen struct" do
|
127
|
+
skip 'wait4 test skipped on this platform' if hpux || darwin
|
128
|
+
|
129
|
+
@pid = fork{ sleep 0.5 }
|
130
|
+
struct = Process.wait4(@pid)
|
131
|
+
expect(struct).to be_frozen
|
132
|
+
end
|
133
|
+
|
134
|
+
example "waitid method is defined" do
|
135
|
+
skip 'waitid test skipped on this platform' if hpux || darwin || bsd
|
136
|
+
|
137
|
+
expect(Process).to respond_to(:waitid)
|
138
|
+
end
|
139
|
+
|
140
|
+
example "waitid method works as expected" do
|
141
|
+
skip 'waitid test skipped on this platform' if hpux || darwin || bsd
|
142
|
+
|
143
|
+
@pid = fork{ sleep 0.5 }
|
144
|
+
expect{ Process.waitid(Process::P_PID, @pid, Process::WEXITED) }.not_to raise_error
|
145
|
+
end
|
146
|
+
|
147
|
+
example "waitid method raises expected errors if wrong argument type is passed" do
|
148
|
+
skip 'waitid test skipped on this platform' if hpux || darwin || bsd
|
149
|
+
|
150
|
+
@pid = fork{ sleep 0.5 }
|
151
|
+
expect{ Process.waitid("foo", @pid, Process::WEXITED) }.to raise_error(TypeError)
|
152
|
+
expect{ Process.waitid(Process::P_PID, @pid, "foo") }.to raise_error(TypeError)
|
153
|
+
expect{ Process.waitid(Process::P_PID, "foo", Process::WEXITED) }.to raise_error(TypeError)
|
154
|
+
end
|
155
|
+
|
156
|
+
example "waitid method raises expected error if invalid argument is passed" do
|
157
|
+
skip 'waitid test skipped on this platform' if hpux || darwin || bsd
|
158
|
+
|
159
|
+
@pid = fork{ sleep 0.5 }
|
160
|
+
expect{ Process.waitid(Process::P_PID, 99999999, Process::WEXITED) }.to raise_error(Errno::ECHILD)
|
161
|
+
end
|
162
|
+
|
163
|
+
example "sigsend method is defined" do
|
164
|
+
skip 'sigsend test skipped on this platform' unless solaris
|
165
|
+
|
166
|
+
expect(Process).to respond_to(:sigsend)
|
167
|
+
end
|
168
|
+
|
169
|
+
example "sigsend works as expected" do
|
170
|
+
skip 'sigsend test skipped on this platform' unless solaris
|
171
|
+
|
172
|
+
@pid = fork{ sleep 0.5 }
|
173
|
+
expect{ Process.sigsend(Process::P_PID, @pid, 0) }.not_to raise_error
|
174
|
+
end
|
175
|
+
|
176
|
+
example "getrusage method is defined" do
|
177
|
+
expect(Process).to respond_to(:getrusage)
|
178
|
+
end
|
179
|
+
|
180
|
+
example "getrusage works as expected" do
|
181
|
+
@pid = fork{ sleep 0.5 }
|
182
|
+
|
183
|
+
expect{ Process.getrusage }.not_to raise_error
|
184
|
+
expect{ Process.getrusage(true) }.not_to raise_error
|
185
|
+
end
|
186
|
+
|
187
|
+
example "getrusage can get thread info on Linux" do
|
188
|
+
skip 'getrusage only tested on Linux' unless linux
|
189
|
+
expect{ Process.getrusage(Process::RUSAGE_THREAD) }.not_to raise_error
|
190
|
+
end
|
191
|
+
|
192
|
+
example "getrusage returns the expected struct" do
|
193
|
+
skip 'getrusage only tested on Linux' unless linux
|
194
|
+
|
195
|
+
@pid = fork{ sleep 0.5 }
|
196
|
+
expect(Process.getrusage).to be_kind_of(Struct::RUsage)
|
197
|
+
expect(Process.getrusage.stime).to be_kind_of(Float)
|
198
|
+
expect(Process.getrusage.utime).to be_kind_of(Float)
|
199
|
+
end
|
200
|
+
|
201
|
+
example "pause method is defined" do
|
202
|
+
expect(Process).to respond_to(:pause)
|
203
|
+
end
|
204
|
+
|
205
|
+
example "expected constants are defined" do
|
206
|
+
skip 'wait constant check skipped on this platform' if darwin || bsd
|
207
|
+
|
208
|
+
expect(Process::WCONTINUED).not_to be_nil
|
209
|
+
expect(Process::WEXITED).not_to be_nil
|
210
|
+
expect(Process::WNOWAIT).not_to be_nil
|
211
|
+
expect(Process::WSTOPPED).not_to be_nil
|
212
|
+
|
213
|
+
skip 'WTRAPPED constant check skipped on this platform' if linux
|
214
|
+
expect(Process::WTRAPPED).not_to be_nil
|
215
|
+
end
|
216
|
+
|
217
|
+
example "expected process type flag constants are defined" do
|
218
|
+
skip 'process type flag check skipped on this platform' if linux || darwin || bsd
|
219
|
+
|
220
|
+
expect(Process::P_ALL).not_to be_nil
|
221
|
+
expect(Process::P_CID).not_to be_nil
|
222
|
+
expect(Process::P_GID).not_to be_nil
|
223
|
+
expect(Process::P_PGID).not_to be_nil
|
224
|
+
expect(Process::P_PID).not_to be_nil
|
225
|
+
expect(Process::P_SID).not_to be_nil
|
226
|
+
expect(Process::P_UID).not_to be_nil
|
227
|
+
|
228
|
+
skip 'P_MYID constant check skipped on this platform' unless solaris
|
229
|
+
expect(Process::P_MYID).not_to be_nil
|
230
|
+
end
|
231
|
+
|
232
|
+
example "solaris-specific process type flags are defined on solaris" do
|
233
|
+
skip 'P_TASKID and P_PROJID constant check skipped on this platform' unless solaris
|
234
|
+
|
235
|
+
expect(Process::P_TASKID).not_to be_nil
|
236
|
+
expect(Process::P_PROJID).not_to be_nil
|
237
|
+
end
|
238
|
+
|
239
|
+
def after
|
240
|
+
Process.kill(9, @pid) if @pid
|
241
|
+
end
|
242
|
+
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proc-wait3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
@@ -35,10 +35,10 @@ cert_chain:
|
|
35
35
|
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
36
|
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2024-02-08 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
41
|
+
name: rake
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
@@ -52,19 +52,19 @@ dependencies:
|
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
55
|
+
name: rspec
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - "
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '3.9'
|
61
61
|
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - "
|
65
|
+
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '3.9'
|
68
68
|
description: |2
|
69
69
|
The proc-wait3 library adds the wait3, wait4, waitid, pause, sigsend,
|
70
70
|
and getrusage methods to the Process module.
|
@@ -72,47 +72,38 @@ email: djberg96@gmail.com
|
|
72
72
|
executables: []
|
73
73
|
extensions:
|
74
74
|
- ext/extconf.rb
|
75
|
-
extra_rdoc_files:
|
76
|
-
- CHANGES.rdoc
|
77
|
-
- README.rdoc
|
78
|
-
- MANIFEST.rdoc
|
79
|
-
- ext/proc/wait3.c
|
75
|
+
extra_rdoc_files: []
|
80
76
|
files:
|
77
|
+
- CHANGES.md
|
78
|
+
- Gemfile
|
81
79
|
- LICENSE
|
82
|
-
-
|
83
|
-
-
|
84
|
-
- ext
|
85
|
-
- ext/proc
|
86
|
-
- ext/proc/wait3.c
|
87
|
-
- ext/extconf.rb
|
80
|
+
- MANIFEST.md
|
81
|
+
- README.md
|
88
82
|
- Rakefile
|
89
|
-
- certs
|
90
83
|
- certs/djberg96_pub.pem
|
91
|
-
-
|
92
|
-
- examples/example_wait4.rb
|
93
|
-
- examples/example_wait3.rb
|
84
|
+
- doc/wait3.md
|
94
85
|
- examples/example_getrusage.rb
|
95
86
|
- examples/example_pause.rb
|
87
|
+
- examples/example_wait3.rb
|
88
|
+
- examples/example_wait4.rb
|
96
89
|
- examples/example_waitid.rb
|
97
|
-
-
|
90
|
+
- ext/extconf.rb
|
91
|
+
- ext/proc/wait3.c
|
98
92
|
- lib/proc-wait3.rb
|
99
|
-
- CHANGES.rdoc
|
100
|
-
- doc
|
101
|
-
- doc/wait3.txt
|
102
|
-
- MANIFEST.rdoc
|
103
93
|
- proc-wait3.gemspec
|
104
|
-
-
|
94
|
+
- spec/proc_wait3_spec.rb
|
105
95
|
homepage: https://github.com/djberg96/proc-wait3
|
106
96
|
licenses:
|
107
97
|
- Apache-2.0
|
108
98
|
metadata:
|
109
99
|
homepage_uri: https://github.com/djberg96/proc-wait3
|
110
100
|
bug_tracker_uri: https://github.com/djberg96/proc-wait3/issues
|
111
|
-
changelog_uri: https://github.com/djberg96/proc-wait3/blob/
|
101
|
+
changelog_uri: https://github.com/djberg96/proc-wait3/blob/main/CHANGES.md
|
112
102
|
documentation_uri: https://github.com/djberg96/proc-wait3/wiki
|
113
103
|
source_code_uri: https://github.com/djberg96/proc-wait3
|
114
104
|
wiki_uri: https://github.com/djberg96/proc-wait3/wiki
|
115
|
-
|
105
|
+
rubygems_mfa_required: 'true'
|
106
|
+
post_install_message:
|
116
107
|
rdoc_options: []
|
117
108
|
require_paths:
|
118
109
|
- lib
|
@@ -120,16 +111,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
111
|
requirements:
|
121
112
|
- - ">="
|
122
113
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
114
|
+
version: '0'
|
124
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
116
|
requirements:
|
126
117
|
- - ">="
|
127
118
|
- !ruby/object:Gem::Version
|
128
119
|
version: '0'
|
129
120
|
requirements: []
|
130
|
-
rubygems_version: 3.
|
131
|
-
signing_key:
|
121
|
+
rubygems_version: 3.1.6
|
122
|
+
signing_key:
|
132
123
|
specification_version: 4
|
133
124
|
summary: Adds wait3, wait4 and other methods to the Process module
|
134
125
|
test_files:
|
135
|
-
-
|
126
|
+
- spec/proc_wait3_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|