rbbt-util 5.5.38 → 5.5.39

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDI1NTNhNzEyM2U5OTE5MThmZWZmZDczZjlkNWMyNjJiYjBjYzlkMQ==
4
+ M2VmNmQwZDc4Yjk1OTNkYWYzNjlkNjEyMzQ3MTc5MTNjOWQyMGU5OQ==
5
5
  data.tar.gz: !binary |-
6
- MmY0OTQ5OGI3OTgwM2RhNjg5MmQ4ZDBlZGQzOWI1ZDVkYTg0MmZkNg==
6
+ YmJhNTBhZGQzOTg5NGQzM2RmYjBiNGEzZThiNzhjYThmZmM4MmFiOQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTA3MTMxNjkyMGFlYjMwZWJjZjAyZGNjNDUyNjIwZjQ1OTVhMDc2ZWU0ZDVl
10
- YTAwNjNmZWRiMjMxMTRjMTgwMWRjODQzMWFmNjMzNDAyOTdlNGE1ZWQ3ZDNi
11
- MWQ4YjBlOWE1ZTlhNTNkOTVlOWFhNjU0ZDgwZDRiM2JjNzkzZGE=
9
+ OWYzZDIwNGVjNjQ3OWExOGQwNjczNGY0ODhiNDMzMDg4NWNiNGY3MjIxY2Jh
10
+ NmFjMzNiMzBiZjYzODlhNzE5ODA0Y2VjNTNlOTUwZmI5Zjc5MTc1MWNhN2E3
11
+ NTYxYmRmZmZiNmEzNzU2ZGQ3ZmFhMjI2ODIyMTA4YzhjMGFkYmM=
12
12
  data.tar.gz: !binary |-
13
- Y2M4YjI4ZTIzNTQzODE0NTliN2JmODBmNDJmYzZjZjA1OGQ5YTU0MzhlNjA1
14
- OGVkZmU4Y2JhMTI1ODQ4YmVhYmNhOWE4YTc3YmQxN2I2Mzg1MDc5N2I1NDI0
15
- NDJkMzUzM2NhNzAxYzFhN2RjNzg0YzVlZTE5ZjE0YjM5NDJjZmU=
13
+ ZWU4N2NiMWYxYTY2OWFiZGUzYmM2Y2YxZDI2N2RkMzZmZGI1YWQzYTFiZWNk
14
+ YzJhYjU1YjUxOWZiZWUxNzY2YTU5NTFjOTRlNDY0NTA1YjQzZTY3MjA1NmQ1
15
+ NWQxZTMxYjE3YmY5NjUwZGQwNjEyZWZiZTBmMzhmZTY2MGQ1YmE=
@@ -269,7 +269,7 @@ module Filtered
269
269
  end
270
270
 
271
271
  def size
272
- keys.length
272
+ filters.empty? ? super : filters.collect{|f| f.ids.length }.min
273
273
  end
274
274
 
275
275
  end
@@ -63,17 +63,24 @@ void post_semaphore(char* name){
63
63
 
64
64
  def self.fork_each_on_semaphore(elems, size, file = nil)
65
65
  with_semaphore(size, file) do |file|
66
- pids = elems.collect do |elem|
67
- Process.fork do
68
- RbbtSemaphore.wait_semaphore(file)
69
- begin
70
- yield elem
71
- ensure
72
- RbbtSemaphore.post_semaphore(file)
66
+ begin
67
+ pids = elems.collect do |elem|
68
+ Process.fork do
69
+ RbbtSemaphore.wait_semaphore(file)
70
+ begin
71
+ yield elem
72
+ ensure
73
+ RbbtSemaphore.post_semaphore(file)
74
+ end
73
75
  end
74
76
  end
77
+ pids.each do |pid| Process.waitpid pid end
78
+ rescue Exception
79
+ Log.error "Killing children: #{pids.sort * ", " }"
80
+ pids.each do |pid| begin Process.kill "INT", pid; rescue; end; RbbtSemaphore.post_semaphore(file) end
81
+ Log.error "Ensuring children are dead: #{pids.sort * ", " }"
82
+ pids.each do |pid| begin Process.waitpid pid; rescue; end; end
75
83
  end
76
- pids.each do |pid| Process.waitpid pid end
77
84
  end
78
85
  end
79
86
  end if continue
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.5.38
4
+ version: 5.5.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez