pesto 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pesto.rb +32 -20
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6ac9f2daaff1198c2a41c6dde98dc134c9df78b2
4
- data.tar.gz: 92e4981299db527e5c1f59492cc949d5b8414d8b
3
+ metadata.gz: f58dbabd4f6573cec2ec4cd53c33880017552ea5
4
+ data.tar.gz: 9b9774f545bdfcab49d706c79b4322c08f1e9984
5
5
  SHA512:
6
- metadata.gz: a1b769859610b0c57e0d03b31d33e3409eea0d7f1cb06a414e1bbc2fbb91c3bbbbfc8f39d7d2612faff4132d2812d942a5fbfbf060a3919b809fa16563de2008
7
- data.tar.gz: 6031277038f28c4efd9e3ab7cc6326ca347f1d61fa82d803df791e0bf9607c4162fe9c4eba38723e232ad7c91fc4c95717d11247ad8c505d8c96199bdab9744a
6
+ metadata.gz: 6df4c3859b29887f48632ee005368edff6f41966e175e683a33a418a766a5a0c1bc184647ef621f8e09c49cec27f99052475ca9187f4c5ee98c4f25048aa9081
7
+ data.tar.gz: 0ded05f4440855aee5b09111ec7b403531596af2e629bce462b6e24d9cabeb074515309911ca90a19308f72147aa3332d686bbf3530346dd14f17f281eab5299
data/lib/pesto.rb CHANGED
@@ -12,7 +12,6 @@ module Pesto
12
12
  :timeout_lock => 90,
13
13
  :interval_check => 0.05
14
14
  }.merge(opts)
15
-
16
15
  end
17
16
 
18
17
  def rc
@@ -39,30 +38,37 @@ module Pesto
39
38
  while true
40
39
  locked = 0
41
40
 
42
- res = rc.pipelined do
43
- names.each do |n|
44
- chash = lock_hash(n)
45
- rc.setnx chash, 1
41
+ lock_req = nil
42
+ rc.with do |rc|
43
+ lock_req = rc.pipelined do
44
+ names.each do |n|
45
+ chash = lock_hash(n)
46
+ rc.setnx chash, 1
47
+ end
46
48
  end
47
49
  end
48
50
 
49
51
  locks = []
50
52
 
51
- names.each_with_index do |n, ix|
52
- l = res[ix]
53
- next if !l
54
- locked += 1
55
- locks << n
53
+ if lock_req
54
+ names.each_with_index do |n, ix|
55
+ l = lock_req[ix]
56
+ next if !l
57
+ locked += 1
58
+ locks << n
59
+ end
56
60
  end
57
61
 
58
62
  if locked == names.size
59
63
  locked = 1
60
64
 
61
65
  if @conf[:lock_expire]
62
- res = rc.pipelined do
63
- names.each do |n|
64
- chash = lock_hash(n)
65
- rc.expire chash, opts[:timeout_lock_expire]
66
+ rc.with do |rc|
67
+ rc.pipelined do
68
+ names.each do |n|
69
+ chash = lock_hash(n)
70
+ rc.expire chash, opts[:timeout_lock_expire]
71
+ end
66
72
  end
67
73
  end
68
74
  end
@@ -100,15 +106,21 @@ module Pesto
100
106
  _names = [_names] if _names.is_a?(String)
101
107
  names = _names.uniq
102
108
 
103
- res = rc.pipelined do
104
- names.each do |n|
105
- rc.del(lock_hash(n))
109
+ unlock_req = nil
110
+ rc.with do |rc|
111
+ unlock_req = rc.pipelined do
112
+ names.each do |n|
113
+ rc.del(lock_hash(n))
114
+ end
106
115
  end
107
116
  end
108
-
117
+
109
118
  val = 0
110
- res.each do |v|
111
- val += v
119
+
120
+ if unlock_req
121
+ unlock_req.each do |v|
122
+ val += v
123
+ end
112
124
  end
113
125
 
114
126
  val > 0 ? 1 : 0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pesto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - bfx devs