pitchcar 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pitchcar.rb +16 -3
  3. data/pitchcar.gemspec +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2c58c55c7dd606fb47608a84e45d5b2b2b3b02f4
4
- data.tar.gz: b54fa3cc18b8e9dd78c6194e2f734268c3c3afbc
3
+ metadata.gz: cf96e6b5e23b38365cd23665ad69f04e8b977f9a
4
+ data.tar.gz: 64cadfddd6379dac5517f8e183b8c5dd88a1b92e
5
5
  SHA512:
6
- metadata.gz: c38eb9cc4657a81ac872c1d44968ee2652acaf9c74dbd73133b0c7288594cfb2753e59de11898159a1325107de1bd4420d7f0121033790428d295df3a4d290fd
7
- data.tar.gz: 4816b8fc9925dd92e1362e67aa9ecdc052b3638b7736f8cd511f55f0597a3a7ef1ae5876470bc0e2e986030acc55fe9e37a2bb95578a163c9a8547768df1645d
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
- track = nil
15
- track = random_track(straight, left_right, size_restrictions) until !track.nil? && track.valid?
16
- track.with_wall_combinations.sample
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'pitchcar'
3
- s.version = '0.3.0'
3
+ s.version = '0.4.0'
4
4
  s.date = '2017-02-23'
5
5
  s.summary = 'Pitchcar Track Generator'
6
6
  s.description = 'Generates tracks for pitchcar'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pitchcar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonah Hirsch