miga-base 1.3.20.8 → 1.3.20.10

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: 884fa2f8a10738f2de273cb19a10388f96c06bf60c0c1561a450c9a33baf92d8
4
- data.tar.gz: 93b494c3000517ff796380c3de3606066d6a853c170bbbbc7cb55a9dc1ed6e5a
3
+ metadata.gz: 89f86ec82f63d08729e4f970919dba5762a2888c797cdf6a8a7f32805929508c
4
+ data.tar.gz: cb3e930ba1a4acb776bd7bcc7481470363109c2c01a67e1780f1d71dc29659c0
5
5
  SHA512:
6
- metadata.gz: 366f03ddf1672c236d3378d9da097b363d608729f28eb30c1f4770702994b88959444f7a9ff058fda3999de1cd9df7d90320fd2314d42eac7dbbc1c5b2b9162f
7
- data.tar.gz: 58189a89c46f22c757b62e5d427f6b0fe89d80c692fda3a566aadc743a9e1ca991cfbe5d667af9ee1c05aebe3c6cc28f13ba71300609ad7a19f661b3a5d26e93
6
+ metadata.gz: aa6434515aaca67b727e2a725cd2013e3096eb638cfc590e452c4e33c0e72f4c788b14cc0e8254cb91f14082330c038fa826ecab2cca01ccc2d4f96272ce0bac
7
+ data.tar.gz: f5aec44b327725934d7585e157a68a653c9567743c46120e90d5280638935194684829acaa0003ff14ed239ee07ead6a604e25d423743986f627cb379767614c
@@ -141,18 +141,22 @@ module MiGA::Cli::Action::Doctor::Distances
141
141
  end
142
142
  MiGA::Parallel.distribute(lower_triangle, cli[:threads]) do |cell, k, thr|
143
143
  cli.advance('Writing:', k, lower_triangle.size, false) if thr == 0
144
+ done_f = File.join(tmp, "#{cell[0]}-#{cell[1]}.txt")
145
+ next if File.exist?(done_f)
146
+
144
147
  fixed_ds = merge_bidir_tmp_pair(tmp, cell[0], cell[1])
145
- File.open(File.join(tmp, "#{cell[0]}-#{cell[1]}.txt"), 'w') do |fh|
146
- fixed_ds.each { |ds| fh.puts ds }
147
- end
148
+ File.open("#{done_f}.tmp", 'w') { |fh| fixed_ds.each { |ds| fh.puts ds } }
149
+ File.rename("#{done_f}.tmp", done_f)
148
150
  end
149
151
  cli.advance('Writing:', lower_triangle.size, lower_triangle.size, false)
150
152
  cli.say
151
153
  lower_triangle.map do |cell|
152
154
  Set.new.tap do |y|
153
- File.open(File.join(tmp, "#{cell[0]}-#{cell[1]}.txt"), 'r') do |fh|
154
- fh.each { |ln| y << ln.chomp }
155
- end
155
+ file = File.join(tmp, "#{cell[0]}-#{cell[1]}.txt")
156
+ raise MiGA::Error.new(
157
+ "Expected file missing, probably due to a thread failure: #{file}"
158
+ ) unless File.exist?(file)
159
+ File.open(file, 'r') { |fh| fh.each { |ln| y << ln.chomp } }
156
160
  end
157
161
  end.inject(Set.new, :+)
158
162
  end
data/lib/miga/version.rb CHANGED
@@ -12,7 +12,7 @@ module MiGA
12
12
  # - String indicating release status:
13
13
  # - rc* release candidate, not released as gem
14
14
  # - [0-9]+ stable release, released as gem
15
- VERSION = [1.3, 20, 8].freeze
15
+ VERSION = [1.3, 20, 10].freeze
16
16
 
17
17
  ##
18
18
  # Nickname for the current major.minor version.
@@ -1,30 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'thread'
4
3
  require 'miga'
5
4
 
6
5
  ARGV[1] or abort "Usage: #{$0} path/to/project threads"
7
6
 
8
7
  p = MiGA::Project.load(ARGV[0])
9
- dsn = p.dataset_names
10
- thr = ARGV[1].to_i
8
+ thr = [ARGV[1].to_i, 1].max
11
9
 
12
- m = MiGA::MiGA.new
13
- m.say 'Cleaning Databases'
10
+ p.say 'Cleaning Databases'
11
+ ds = p.dataset_ref_active
14
12
 
15
- (0..thr - 1).each do |t|
16
- fork do
17
- dsn.each_with_index do |i, idx|
18
- m.advance('Dataset:', idx + 1, dsn.size) if t == 0
19
- next unless (idx % thr) == t
20
-
21
- d = p.dataset(i)
22
- next unless d.ref? && d.active?
23
-
24
- d.cleanup_distances!
25
- end
26
- end
13
+ MiGA::Parallel.distribute(ds, thr) do |d, k, t|
14
+ p.advance('Dataset:', k, ds.size) if t == 0
15
+ d.cleanup_distances!
27
16
  end
28
- Process.waitall
29
- m.advance('Dataset:', dsn.size, dsn.size)
30
- m.say
17
+ p.advance('Dataset:', ds.size, ds.size)
18
+ p.say
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miga-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.20.8
4
+ version: 1.3.20.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis M. Rodriguez-R