pitchcar 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pitchcar.rb +16 -3
- data/pitchcar.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf96e6b5e23b38365cd23665ad69f04e8b977f9a
|
4
|
+
data.tar.gz: 64cadfddd6379dac5517f8e183b8c5dd88a1b92e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c22eb69419c43fa3f383786fc6f896bbcea126ef820eb453ea79df77d8fc3ff206f74f93a0813ed1e03f69ee82b598bfe89a9b2ecdaf170f5f0931c0bdc86af4
|
7
|
+
data.tar.gz: ed60d3316ee4cddb978114f7da111e90c2d05542b0d0637523a5473ab0019a362bd074d0dfe160e96f8b9b3fbc44b54c17f57d688f1167de0b513662bcd5071d
|
data/lib/pitchcar.rb
CHANGED
@@ -11,9 +11,22 @@ module Pitchcar
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def random_valid_track(straight, left_right, size_restrictions = {})
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
found_track = nil
|
15
|
+
semaphore = Mutex.new
|
16
|
+
|
17
|
+
ENV.fetch('MAX_THREADS', 10).times do
|
18
|
+
Thread.new do
|
19
|
+
track = nil
|
20
|
+
while track.nil? || !track.valid?
|
21
|
+
Thread.stop unless found_track.nil?
|
22
|
+
track = random_track(straight, left_right, size_restrictions)
|
23
|
+
end
|
24
|
+
semaphore.synchronize { found_track = track if found_track.nil? }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
sleep(0.01) while found_track.nil?
|
29
|
+
found_track.with_wall_combinations.sample
|
17
30
|
end
|
18
31
|
|
19
32
|
def random_valid_tracks(straight, left_right, count = 2, size_restrictions = {})
|
data/pitchcar.gemspec
CHANGED