rbbt-util 5.5.38 → 5.5.39

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