redis-semaphore 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.md +6 -1
  2. data/lib/redis/semaphore.rb +7 -2
  3. metadata +2 -2
data/README.md CHANGED
@@ -174,8 +174,12 @@ Testing
174
174
  Changelog
175
175
  ---------
176
176
 
177
+ ###0.2.0 June 2, 2013
178
+ - Use Redis TIME command for lock timeouts (thanks dubdronic!).
179
+ - Version increase because of new dependency on Redis 2.6+
180
+
177
181
  ###0.1.7 April 18, 2013
178
- - Fix bug where ```release\_stale\_locks!``` was not public (thanks scomma!).
182
+ - Fix bug where ```release_stale_locks!``` was not public (thanks scomma!).
179
183
 
180
184
  ###0.1.6 March 31, 2013
181
185
  - Add non-ownership of tokens
@@ -213,3 +217,4 @@ Thanks to these awesome peeps for their contributions:
213
217
  - [Tim Galeckas](https://github.com/timgaleckas)
214
218
  - [Ruurd Pels](https://github.com/ruurd)
215
219
  - [Prathan Thananart](https://github.com/scomma)
220
+ - [dubdromic](https://github.com/dubdromic)
@@ -52,7 +52,7 @@ class Redis
52
52
 
53
53
  current_token = token_pair[1]
54
54
  @tokens.push(current_token)
55
- @redis.hset(grabbed_key, current_token, Time.now.to_i)
55
+ @redis.hset(grabbed_key, current_token, current_time.to_f)
56
56
 
57
57
  if block_given?
58
58
  begin
@@ -117,7 +117,7 @@ class Redis
117
117
  @redis.hgetall(grabbed_key).each do |token, locked_at|
118
118
  timed_out_at = locked_at.to_f + @stale_client_timeout
119
119
 
120
- if timed_out_at < Time.now.to_f
120
+ if timed_out_at < current_time.to_f
121
121
  signal(token)
122
122
  end
123
123
  end
@@ -182,5 +182,10 @@ class Redis
182
182
  def grabbed_key
183
183
  @grabbed_key ||= namespaced_key('GRABBED')
184
184
  end
185
+
186
+ def current_time
187
+ instant = @redis.time
188
+ Time.at(instant[0], instant[1])
189
+ end
185
190
  end
186
191
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-semaphore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-18 00:00:00.000000000 Z
12
+ date: 2013-06-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis