ruby_redis_lock 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.loadpath +5 -5
- data/.project +17 -17
- data/.rspec +3 -0
- data/Gemfile +4 -4
- data/Gemfile.lock +4 -0
- data/Readme.md +83 -85
- data/lib/ruby_redis_lock/ruby_redis_lock.rb +55 -65
- data/lib/ruby_redis_lock/version.rb +3 -0
- data/lib/ruby_redis_lock.rb +8 -8
- data/redis_test.bat +1 -1
- data/ruby_redis_lock.gemspec +24 -21
- data/spec/{acquire_lock_spec.rb → lib/acquire_lock_spec.rb} +43 -43
- data/spec/{lock_spec.rb → lib/lock_spec.rb} +72 -72
- data/spec/{release_lock_spec.rb → lib/release_lock_spec.rb} +21 -21
- data/spec/{try_acquire_lock_spec.rb → lib/try_acquire_lock_spec.rb} +30 -30
- data/spec/spec_config.rb +10 -0
- data/spec/spec_helper.rb +11 -20
- data/test.conf +1 -1
- metadata +27 -70
- data/coverage/.resultset.json +0 -240
- data/coverage/assets/0.5.3/app.js +0 -88
- data/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
- data/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
- data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +0 -363
- data/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
- data/coverage/assets/0.5.3/favicon_green.png +0 -0
- data/coverage/assets/0.5.3/favicon_red.png +0 -0
- data/coverage/assets/0.5.3/favicon_yellow.png +0 -0
- data/coverage/assets/0.5.3/highlight.css +0 -129
- data/coverage/assets/0.5.3/highlight.pack.js +0 -1
- data/coverage/assets/0.5.3/jquery-1.6.2.min.js +0 -18
- data/coverage/assets/0.5.3/jquery.dataTables.min.js +0 -152
- data/coverage/assets/0.5.3/jquery.timeago.js +0 -141
- data/coverage/assets/0.5.3/jquery.url.js +0 -174
- data/coverage/assets/0.5.3/loading.gif +0 -0
- data/coverage/assets/0.5.3/magnify.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +0 -295
- data/coverage/assets/0.5.3/stylesheet.css +0 -383
- data/coverage/index.html +0 -1575
- data/ruby_redis_lock.rdb +0 -1
data/coverage/index.html
DELETED
@@ -1,1575 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
-
<head>
|
4
|
-
<title>Code coverage for Ruby redis lock</title>
|
5
|
-
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
-
<script src='./assets/0.5.3/jquery-1.6.2.min.js' type='text/javascript'></script>
|
7
|
-
<script src='./assets/0.5.3/jquery.dataTables.min.js' type='text/javascript'></script>
|
8
|
-
<script src='./assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js' type='text/javascript'></script>
|
9
|
-
<script src='./assets/0.5.3/jquery.timeago.js' type='text/javascript'></script>
|
10
|
-
<script src='./assets/0.5.3/jquery.url.js' type='text/javascript'></script>
|
11
|
-
<script src='./assets/0.5.3/highlight.pack.js' type='text/javascript'></script>
|
12
|
-
<script src='./assets/0.5.3/app.js' type='text/javascript'></script>
|
13
|
-
<link href='./assets/0.5.3/stylesheet.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
14
|
-
<link href='./assets/0.5.3/highlight.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
15
|
-
<link href='./assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
16
|
-
<link href='./assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
17
|
-
<link rel="shortcut icon" type="image/png" href="./assets/0.5.3/favicon_green.png" />
|
18
|
-
<link rel="icon" type="image/png" href="./assets/0.5.3/favicon.png" />
|
19
|
-
</head>
|
20
|
-
|
21
|
-
<body>
|
22
|
-
<div id="loading">
|
23
|
-
<img src="./assets/0.5.3/loading.gif" alt="loading"/>
|
24
|
-
</div>
|
25
|
-
<div id="wrapper" style="display:none;">
|
26
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2011-09-30T02:23:50+07:00">2011-09-30T02:23:50+07:00</abbr></div>
|
27
|
-
<ul class="group_tabs"></ul>
|
28
|
-
|
29
|
-
<div id="content">
|
30
|
-
<div class="file_list_container" id="AllFiles">
|
31
|
-
<h2>
|
32
|
-
<span class="group_name">All Files</span>
|
33
|
-
(<span class="covered_percent"><span class="green">97.96%</span></span>
|
34
|
-
covered at
|
35
|
-
<span class="covered_strength">
|
36
|
-
<span class="green">
|
37
|
-
4.43
|
38
|
-
</span>
|
39
|
-
</span> hits/line)
|
40
|
-
</h2>
|
41
|
-
<a name="AllFiles"></a>
|
42
|
-
<div>
|
43
|
-
<b>6</b> files in total.
|
44
|
-
<b>98</b> relevant lines.
|
45
|
-
<span class="green"><b>96</b> lines covered</span> and
|
46
|
-
<span class="red"><b>2</b> lines missed </span>
|
47
|
-
</div>
|
48
|
-
<table class="file_list">
|
49
|
-
<thead>
|
50
|
-
<tr>
|
51
|
-
<th>File</th>
|
52
|
-
<th>% covered</th>
|
53
|
-
<th>Lines</th>
|
54
|
-
<th>Relevant Lines</th>
|
55
|
-
<th>Lines covered</th>
|
56
|
-
<th>Lines missed</th>
|
57
|
-
<th>Avg. Hits / Line</th>
|
58
|
-
</tr>
|
59
|
-
</thead>
|
60
|
-
<tbody>
|
61
|
-
|
62
|
-
<tr>
|
63
|
-
<td class="strong"><a href="#420c3fa027ea17c7e78e2a1b5d7be44d83bd765b" class="src_link" title="lib/ruby_redis_lock.rb">lib/ruby_redis_lock.rb</a></td>
|
64
|
-
<td class="green strong">100.0 %</td>
|
65
|
-
<td>9</td>
|
66
|
-
<td>4</td>
|
67
|
-
<td>4</td>
|
68
|
-
<td>0</td>
|
69
|
-
<td>1.0</td>
|
70
|
-
</tr>
|
71
|
-
|
72
|
-
<tr>
|
73
|
-
<td class="strong"><a href="#79b9b809d8ed194bbd91e1cf23cb93107280df41" class="src_link" title="lib/ruby_redis_lock/ruby_redis_lock.rb">lib/ruby_redis_lock/ruby_redis_lock.rb</a></td>
|
74
|
-
<td class="green strong">93.55 %</td>
|
75
|
-
<td>66</td>
|
76
|
-
<td>31</td>
|
77
|
-
<td>29</td>
|
78
|
-
<td>2</td>
|
79
|
-
<td>18.8</td>
|
80
|
-
</tr>
|
81
|
-
|
82
|
-
<tr>
|
83
|
-
<td class="strong"><a href="#545f28e2395c33a4665b5588418d9186b1bf849e" class="src_link" title="spec/lock_spec.rb">spec/lock_spec.rb</a></td>
|
84
|
-
<td class="green strong">100.0 %</td>
|
85
|
-
<td>73</td>
|
86
|
-
<td>32</td>
|
87
|
-
<td>32</td>
|
88
|
-
<td>0</td>
|
89
|
-
<td>1.0</td>
|
90
|
-
</tr>
|
91
|
-
|
92
|
-
<tr>
|
93
|
-
<td class="strong"><a href="#6fd79c5de64e5c880425dbb4668e8de8bdb655fb" class="src_link" title="spec/release_lock_spec.rb">spec/release_lock_spec.rb</a></td>
|
94
|
-
<td class="green strong">100.0 %</td>
|
95
|
-
<td>22</td>
|
96
|
-
<td>9</td>
|
97
|
-
<td>9</td>
|
98
|
-
<td>0</td>
|
99
|
-
<td>1.0</td>
|
100
|
-
</tr>
|
101
|
-
|
102
|
-
<tr>
|
103
|
-
<td class="strong"><a href="#a2b71c3de290f655a4fd2b1a82e13ca922365681" class="src_link" title="spec/spec_helper.rb">spec/spec_helper.rb</a></td>
|
104
|
-
<td class="green strong">100.0 %</td>
|
105
|
-
<td>20</td>
|
106
|
-
<td>10</td>
|
107
|
-
<td>10</td>
|
108
|
-
<td>0</td>
|
109
|
-
<td>3.8</td>
|
110
|
-
</tr>
|
111
|
-
|
112
|
-
<tr>
|
113
|
-
<td class="strong"><a href="#13c0511db80f553f86679faef9c740541d8ed885" class="src_link" title="spec/try_acquire_lock_spec.rb">spec/try_acquire_lock_spec.rb</a></td>
|
114
|
-
<td class="green strong">100.0 %</td>
|
115
|
-
<td>31</td>
|
116
|
-
<td>12</td>
|
117
|
-
<td>12</td>
|
118
|
-
<td>0</td>
|
119
|
-
<td>1.0</td>
|
120
|
-
</tr>
|
121
|
-
|
122
|
-
</tbody>
|
123
|
-
</table>
|
124
|
-
</div>
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
</div>
|
129
|
-
|
130
|
-
<div id="footer">
|
131
|
-
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.5.3
|
132
|
-
and simplecov-html v0.5.3<br/>
|
133
|
-
using RSpec
|
134
|
-
</div>
|
135
|
-
|
136
|
-
<div class="source_files">
|
137
|
-
|
138
|
-
<div class="source_table" id="420c3fa027ea17c7e78e2a1b5d7be44d83bd765b">
|
139
|
-
<div class="header">
|
140
|
-
<h3>lib/ruby_redis_lock.rb</h3>
|
141
|
-
<h4><span class="green">100.0 %</span> covered</h4>
|
142
|
-
<div>
|
143
|
-
<b>4</b> relevant lines.
|
144
|
-
<span class="green"><b>4</b> lines covered</span> and
|
145
|
-
<span class="red"><b>0</b> lines missed.</span>
|
146
|
-
</div>
|
147
|
-
</div>
|
148
|
-
|
149
|
-
<pre>
|
150
|
-
<ol>
|
151
|
-
|
152
|
-
<li class="covered" data-hits="1" data-linenumber="1">
|
153
|
-
<span class="hits">1</span>
|
154
|
-
|
155
|
-
<code class="ruby">require 'redis'</code>
|
156
|
-
</li>
|
157
|
-
|
158
|
-
<li class="never" data-hits="" data-linenumber="2">
|
159
|
-
|
160
|
-
|
161
|
-
<code class="ruby"></code>
|
162
|
-
</li>
|
163
|
-
|
164
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
165
|
-
<span class="hits">1</span>
|
166
|
-
|
167
|
-
<code class="ruby">require File.expand_path('../ruby_redis_lock/ruby_redis_lock', __FILE__)</code>
|
168
|
-
</li>
|
169
|
-
|
170
|
-
<li class="never" data-hits="" data-linenumber="4">
|
171
|
-
|
172
|
-
|
173
|
-
<code class="ruby"></code>
|
174
|
-
</li>
|
175
|
-
|
176
|
-
<li class="never" data-hits="" data-linenumber="5">
|
177
|
-
|
178
|
-
|
179
|
-
<code class="ruby"></code>
|
180
|
-
</li>
|
181
|
-
|
182
|
-
<li class="covered" data-hits="1" data-linenumber="6">
|
183
|
-
<span class="hits">1</span>
|
184
|
-
|
185
|
-
<code class="ruby">class Redis</code>
|
186
|
-
</li>
|
187
|
-
|
188
|
-
<li class="covered" data-hits="1" data-linenumber="7">
|
189
|
-
<span class="hits">1</span>
|
190
|
-
|
191
|
-
<code class="ruby"> include RubyRedisLock</code>
|
192
|
-
</li>
|
193
|
-
|
194
|
-
<li class="never" data-hits="" data-linenumber="8">
|
195
|
-
|
196
|
-
|
197
|
-
<code class="ruby"> </code>
|
198
|
-
</li>
|
199
|
-
|
200
|
-
<li class="never" data-hits="" data-linenumber="9">
|
201
|
-
|
202
|
-
|
203
|
-
<code class="ruby">end</code>
|
204
|
-
</li>
|
205
|
-
|
206
|
-
</ol>
|
207
|
-
</pre>
|
208
|
-
</div>
|
209
|
-
|
210
|
-
<div class="source_table" id="79b9b809d8ed194bbd91e1cf23cb93107280df41">
|
211
|
-
<div class="header">
|
212
|
-
<h3>lib/ruby_redis_lock/ruby_redis_lock.rb</h3>
|
213
|
-
<h4><span class="green">93.55 %</span> covered</h4>
|
214
|
-
<div>
|
215
|
-
<b>31</b> relevant lines.
|
216
|
-
<span class="green"><b>29</b> lines covered</span> and
|
217
|
-
<span class="red"><b>2</b> lines missed.</span>
|
218
|
-
</div>
|
219
|
-
</div>
|
220
|
-
|
221
|
-
<pre>
|
222
|
-
<ol>
|
223
|
-
|
224
|
-
<li class="covered" data-hits="1" data-linenumber="1">
|
225
|
-
<span class="hits">1</span>
|
226
|
-
|
227
|
-
<code class="ruby">module RubyRedisLock</code>
|
228
|
-
</li>
|
229
|
-
|
230
|
-
<li class="never" data-hits="" data-linenumber="2">
|
231
|
-
|
232
|
-
|
233
|
-
<code class="ruby"> </code>
|
234
|
-
</li>
|
235
|
-
|
236
|
-
<li class="never" data-hits="" data-linenumber="3">
|
237
|
-
|
238
|
-
|
239
|
-
<code class="ruby"></code>
|
240
|
-
</li>
|
241
|
-
|
242
|
-
<li class="covered" data-hits="1" data-linenumber="4">
|
243
|
-
<span class="hits">1</span>
|
244
|
-
|
245
|
-
<code class="ruby"> def lock(lock_name, processing_timeout=60, acquiring_timout=10)</code>
|
246
|
-
</li>
|
247
|
-
|
248
|
-
<li class="covered" data-hits="7" data-linenumber="5">
|
249
|
-
<span class="hits">7</span>
|
250
|
-
|
251
|
-
<code class="ruby"> acquire_lock(lock_name, processing_timeout, acquiring_timout)</code>
|
252
|
-
</li>
|
253
|
-
|
254
|
-
<li class="covered" data-hits="6" data-linenumber="6">
|
255
|
-
<span class="hits">6</span>
|
256
|
-
|
257
|
-
<code class="ruby"> yield</code>
|
258
|
-
</li>
|
259
|
-
|
260
|
-
<li class="never" data-hits="" data-linenumber="7">
|
261
|
-
|
262
|
-
|
263
|
-
<code class="ruby"> ensure</code>
|
264
|
-
</li>
|
265
|
-
|
266
|
-
<li class="covered" data-hits="7" data-linenumber="8">
|
267
|
-
<span class="hits">7</span>
|
268
|
-
|
269
|
-
<code class="ruby"> release_lock(lock_name, processing_timeout)</code>
|
270
|
-
</li>
|
271
|
-
|
272
|
-
<li class="never" data-hits="" data-linenumber="9">
|
273
|
-
|
274
|
-
|
275
|
-
<code class="ruby"> end</code>
|
276
|
-
</li>
|
277
|
-
|
278
|
-
<li class="never" data-hits="" data-linenumber="10">
|
279
|
-
|
280
|
-
|
281
|
-
<code class="ruby"> </code>
|
282
|
-
</li>
|
283
|
-
|
284
|
-
<li class="never" data-hits="" data-linenumber="11">
|
285
|
-
|
286
|
-
|
287
|
-
<code class="ruby"> </code>
|
288
|
-
</li>
|
289
|
-
|
290
|
-
<li class="covered" data-hits="1" data-linenumber="12">
|
291
|
-
<span class="hits">1</span>
|
292
|
-
|
293
|
-
<code class="ruby"> private</code>
|
294
|
-
</li>
|
295
|
-
|
296
|
-
<li class="covered" data-hits="1" data-linenumber="13">
|
297
|
-
<span class="hits">1</span>
|
298
|
-
|
299
|
-
<code class="ruby"> def acquire_lock(lock_name, processing_timeout=60, acquiring_timeout=10)</code>
|
300
|
-
</li>
|
301
|
-
|
302
|
-
<li class="never" data-hits="" data-linenumber="14">
|
303
|
-
|
304
|
-
|
305
|
-
<code class="ruby"> </code>
|
306
|
-
</li>
|
307
|
-
|
308
|
-
<li class="covered" data-hits="17" data-linenumber="15">
|
309
|
-
<span class="hits">17</span>
|
310
|
-
|
311
|
-
<code class="ruby"> start_time = Time.now.to_i</code>
|
312
|
-
</li>
|
313
|
-
|
314
|
-
<li class="never" data-hits="" data-linenumber="16">
|
315
|
-
|
316
|
-
|
317
|
-
<code class="ruby"> </code>
|
318
|
-
</li>
|
319
|
-
|
320
|
-
<li class="covered" data-hits="17" data-linenumber="17">
|
321
|
-
<span class="hits">17</span>
|
322
|
-
|
323
|
-
<code class="ruby"> while !try_acquire_lock(lock_name, processing_timeout)</code>
|
324
|
-
</li>
|
325
|
-
|
326
|
-
<li class="never" data-hits="" data-linenumber="18">
|
327
|
-
|
328
|
-
|
329
|
-
<code class="ruby"> </code>
|
330
|
-
</li>
|
331
|
-
|
332
|
-
<li class="covered" data-hits="43" data-linenumber="19">
|
333
|
-
<span class="hits">43</span>
|
334
|
-
|
335
|
-
<code class="ruby"> sleep(rand(100).to_f/100.0)</code>
|
336
|
-
</li>
|
337
|
-
|
338
|
-
<li class="never" data-hits="" data-linenumber="20">
|
339
|
-
|
340
|
-
|
341
|
-
<code class="ruby"> </code>
|
342
|
-
</li>
|
343
|
-
|
344
|
-
<li class="covered" data-hits="43" data-linenumber="21">
|
345
|
-
<span class="hits">43</span>
|
346
|
-
|
347
|
-
<code class="ruby"> if (Time.now.to_i - start_time) > acquiring_timeout</code>
|
348
|
-
</li>
|
349
|
-
|
350
|
-
<li class="covered" data-hits="2" data-linenumber="22">
|
351
|
-
<span class="hits">2</span>
|
352
|
-
|
353
|
-
<code class="ruby"> raise Exception, "Acquiring lock timeout > #{acquiring_timeout} seconds"</code>
|
354
|
-
</li>
|
355
|
-
|
356
|
-
<li class="never" data-hits="" data-linenumber="23">
|
357
|
-
|
358
|
-
|
359
|
-
<code class="ruby"> end</code>
|
360
|
-
</li>
|
361
|
-
|
362
|
-
<li class="never" data-hits="" data-linenumber="24">
|
363
|
-
|
364
|
-
|
365
|
-
<code class="ruby"> </code>
|
366
|
-
</li>
|
367
|
-
|
368
|
-
<li class="never" data-hits="" data-linenumber="25">
|
369
|
-
|
370
|
-
|
371
|
-
<code class="ruby"> end</code>
|
372
|
-
</li>
|
373
|
-
|
374
|
-
<li class="never" data-hits="" data-linenumber="26">
|
375
|
-
|
376
|
-
|
377
|
-
<code class="ruby"> </code>
|
378
|
-
</li>
|
379
|
-
|
380
|
-
<li class="covered" data-hits="15" data-linenumber="27">
|
381
|
-
<span class="hits">15</span>
|
382
|
-
|
383
|
-
<code class="ruby"> return true</code>
|
384
|
-
</li>
|
385
|
-
|
386
|
-
<li class="never" data-hits="" data-linenumber="28">
|
387
|
-
|
388
|
-
|
389
|
-
<code class="ruby"> </code>
|
390
|
-
</li>
|
391
|
-
|
392
|
-
<li class="never" data-hits="" data-linenumber="29">
|
393
|
-
|
394
|
-
|
395
|
-
<code class="ruby"> end</code>
|
396
|
-
</li>
|
397
|
-
|
398
|
-
<li class="never" data-hits="" data-linenumber="30">
|
399
|
-
|
400
|
-
|
401
|
-
<code class="ruby"> </code>
|
402
|
-
</li>
|
403
|
-
|
404
|
-
<li class="covered" data-hits="1" data-linenumber="31">
|
405
|
-
<span class="hits">1</span>
|
406
|
-
|
407
|
-
<code class="ruby"> def try_acquire_lock(lock_name, processing_timeout=60)</code>
|
408
|
-
</li>
|
409
|
-
|
410
|
-
<li class="never" data-hits="" data-linenumber="32">
|
411
|
-
|
412
|
-
|
413
|
-
<code class="ruby"> </code>
|
414
|
-
</li>
|
415
|
-
|
416
|
-
<li class="covered" data-hits="63" data-linenumber="33">
|
417
|
-
<span class="hits">63</span>
|
418
|
-
|
419
|
-
<code class="ruby"> ret = self.setnx(ruby_redis_lock_key(lock_name), "#{Time.now.to_i + processing_timeout}")</code>
|
420
|
-
</li>
|
421
|
-
|
422
|
-
<li class="covered" data-hits="63" data-linenumber="34">
|
423
|
-
<span class="hits">63</span>
|
424
|
-
|
425
|
-
<code class="ruby"> return true if ret == true</code>
|
426
|
-
</li>
|
427
|
-
|
428
|
-
<li class="never" data-hits="" data-linenumber="35">
|
429
|
-
|
430
|
-
|
431
|
-
<code class="ruby"> </code>
|
432
|
-
</li>
|
433
|
-
|
434
|
-
<li class="covered" data-hits="47" data-linenumber="36">
|
435
|
-
<span class="hits">47</span>
|
436
|
-
|
437
|
-
<code class="ruby"> expiration = self.get(ruby_redis_lock_key(lock_name)).to_i</code>
|
438
|
-
</li>
|
439
|
-
|
440
|
-
<li class="covered" data-hits="47" data-linenumber="37">
|
441
|
-
<span class="hits">47</span>
|
442
|
-
|
443
|
-
<code class="ruby"> return false if Time.now.to_i < expiration</code>
|
444
|
-
</li>
|
445
|
-
|
446
|
-
<li class="never" data-hits="" data-linenumber="38">
|
447
|
-
|
448
|
-
|
449
|
-
<code class="ruby"></code>
|
450
|
-
</li>
|
451
|
-
|
452
|
-
<li class="covered" data-hits="3" data-linenumber="39">
|
453
|
-
<span class="hits">3</span>
|
454
|
-
|
455
|
-
<code class="ruby"> previous_expiration = self.getset(ruby_redis_lock_key(lock_name), "#{Time.now.to_i + processing_timeout}").to_i</code>
|
456
|
-
</li>
|
457
|
-
|
458
|
-
<li class="covered" data-hits="3" data-linenumber="40">
|
459
|
-
<span class="hits">3</span>
|
460
|
-
|
461
|
-
<code class="ruby"> return true if expiration == previous_expiration</code>
|
462
|
-
</li>
|
463
|
-
|
464
|
-
<li class="never" data-hits="" data-linenumber="41">
|
465
|
-
|
466
|
-
|
467
|
-
<code class="ruby"> </code>
|
468
|
-
</li>
|
469
|
-
|
470
|
-
<li class="missed" data-hits="0" data-linenumber="42">
|
471
|
-
|
472
|
-
|
473
|
-
<code class="ruby"> return false</code>
|
474
|
-
</li>
|
475
|
-
|
476
|
-
<li class="never" data-hits="" data-linenumber="43">
|
477
|
-
|
478
|
-
|
479
|
-
<code class="ruby"> </code>
|
480
|
-
</li>
|
481
|
-
|
482
|
-
<li class="never" data-hits="" data-linenumber="44">
|
483
|
-
|
484
|
-
|
485
|
-
<code class="ruby"> end</code>
|
486
|
-
</li>
|
487
|
-
|
488
|
-
<li class="never" data-hits="" data-linenumber="45">
|
489
|
-
|
490
|
-
|
491
|
-
<code class="ruby"> </code>
|
492
|
-
</li>
|
493
|
-
|
494
|
-
<li class="covered" data-hits="1" data-linenumber="46">
|
495
|
-
<span class="hits">1</span>
|
496
|
-
|
497
|
-
<code class="ruby"> def release_lock(lock_name, processing_timeout=60)</code>
|
498
|
-
</li>
|
499
|
-
|
500
|
-
<li class="never" data-hits="" data-linenumber="47">
|
501
|
-
|
502
|
-
|
503
|
-
<code class="ruby"> </code>
|
504
|
-
</li>
|
505
|
-
|
506
|
-
<li class="covered" data-hits="10" data-linenumber="48">
|
507
|
-
<span class="hits">10</span>
|
508
|
-
|
509
|
-
<code class="ruby"> expiration = self.get(ruby_redis_lock_key(lock_name)).to_i</code>
|
510
|
-
</li>
|
511
|
-
|
512
|
-
<li class="covered" data-hits="10" data-linenumber="49">
|
513
|
-
<span class="hits">10</span>
|
514
|
-
|
515
|
-
<code class="ruby"> return false if Time.now.to_i > expiration</code>
|
516
|
-
</li>
|
517
|
-
|
518
|
-
<li class="never" data-hits="" data-linenumber="50">
|
519
|
-
|
520
|
-
|
521
|
-
<code class="ruby"> </code>
|
522
|
-
</li>
|
523
|
-
|
524
|
-
<li class="covered" data-hits="8" data-linenumber="51">
|
525
|
-
<span class="hits">8</span>
|
526
|
-
|
527
|
-
<code class="ruby"> previous_expiration = self.getset(ruby_redis_lock_key(lock_name), "#{Time.now.to_i + processing_timeout}").to_i</code>
|
528
|
-
</li>
|
529
|
-
|
530
|
-
<li class="never" data-hits="" data-linenumber="52">
|
531
|
-
|
532
|
-
|
533
|
-
<code class="ruby"> </code>
|
534
|
-
</li>
|
535
|
-
|
536
|
-
<li class="covered" data-hits="8" data-linenumber="53">
|
537
|
-
<span class="hits">8</span>
|
538
|
-
|
539
|
-
<code class="ruby"> if expiration == previous_expiration # it still got the lock</code>
|
540
|
-
</li>
|
541
|
-
|
542
|
-
<li class="covered" data-hits="8" data-linenumber="54">
|
543
|
-
<span class="hits">8</span>
|
544
|
-
|
545
|
-
<code class="ruby"> self.del(ruby_redis_lock_key(lock_name))</code>
|
546
|
-
</li>
|
547
|
-
|
548
|
-
<li class="covered" data-hits="8" data-linenumber="55">
|
549
|
-
<span class="hits">8</span>
|
550
|
-
|
551
|
-
<code class="ruby"> return true</code>
|
552
|
-
</li>
|
553
|
-
|
554
|
-
<li class="never" data-hits="" data-linenumber="56">
|
555
|
-
|
556
|
-
|
557
|
-
<code class="ruby"> end</code>
|
558
|
-
</li>
|
559
|
-
|
560
|
-
<li class="never" data-hits="" data-linenumber="57">
|
561
|
-
|
562
|
-
|
563
|
-
<code class="ruby"> </code>
|
564
|
-
</li>
|
565
|
-
|
566
|
-
<li class="missed" data-hits="0" data-linenumber="58">
|
567
|
-
|
568
|
-
|
569
|
-
<code class="ruby"> return false</code>
|
570
|
-
</li>
|
571
|
-
|
572
|
-
<li class="never" data-hits="" data-linenumber="59">
|
573
|
-
|
574
|
-
|
575
|
-
<code class="ruby"> end</code>
|
576
|
-
</li>
|
577
|
-
|
578
|
-
<li class="never" data-hits="" data-linenumber="60">
|
579
|
-
|
580
|
-
|
581
|
-
<code class="ruby"> </code>
|
582
|
-
</li>
|
583
|
-
|
584
|
-
<li class="covered" data-hits="1" data-linenumber="61">
|
585
|
-
<span class="hits">1</span>
|
586
|
-
|
587
|
-
<code class="ruby"> def ruby_redis_lock_key(lock_name)</code>
|
588
|
-
</li>
|
589
|
-
|
590
|
-
<li class="covered" data-hits="140" data-linenumber="62">
|
591
|
-
<span class="hits">140</span>
|
592
|
-
|
593
|
-
<code class="ruby"> "RubyRedisLock:#{lock_name}"</code>
|
594
|
-
</li>
|
595
|
-
|
596
|
-
<li class="never" data-hits="" data-linenumber="63">
|
597
|
-
|
598
|
-
|
599
|
-
<code class="ruby"> end</code>
|
600
|
-
</li>
|
601
|
-
|
602
|
-
<li class="never" data-hits="" data-linenumber="64">
|
603
|
-
|
604
|
-
|
605
|
-
<code class="ruby"> </code>
|
606
|
-
</li>
|
607
|
-
|
608
|
-
<li class="never" data-hits="" data-linenumber="65">
|
609
|
-
|
610
|
-
|
611
|
-
<code class="ruby"></code>
|
612
|
-
</li>
|
613
|
-
|
614
|
-
<li class="never" data-hits="" data-linenumber="66">
|
615
|
-
|
616
|
-
|
617
|
-
<code class="ruby">end</code>
|
618
|
-
</li>
|
619
|
-
|
620
|
-
</ol>
|
621
|
-
</pre>
|
622
|
-
</div>
|
623
|
-
|
624
|
-
<div class="source_table" id="545f28e2395c33a4665b5588418d9186b1bf849e">
|
625
|
-
<div class="header">
|
626
|
-
<h3>spec/lock_spec.rb</h3>
|
627
|
-
<h4><span class="green">100.0 %</span> covered</h4>
|
628
|
-
<div>
|
629
|
-
<b>32</b> relevant lines.
|
630
|
-
<span class="green"><b>32</b> lines covered</span> and
|
631
|
-
<span class="red"><b>0</b> lines missed.</span>
|
632
|
-
</div>
|
633
|
-
</div>
|
634
|
-
|
635
|
-
<pre>
|
636
|
-
<ol>
|
637
|
-
|
638
|
-
<li class="covered" data-hits="1" data-linenumber="1">
|
639
|
-
<span class="hits">1</span>
|
640
|
-
|
641
|
-
<code class="ruby">require 'spec_helper'</code>
|
642
|
-
</li>
|
643
|
-
|
644
|
-
<li class="never" data-hits="" data-linenumber="2">
|
645
|
-
|
646
|
-
|
647
|
-
<code class="ruby"></code>
|
648
|
-
</li>
|
649
|
-
|
650
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
651
|
-
<span class="hits">1</span>
|
652
|
-
|
653
|
-
<code class="ruby">describe 'lock' do</code>
|
654
|
-
</li>
|
655
|
-
|
656
|
-
<li class="never" data-hits="" data-linenumber="4">
|
657
|
-
|
658
|
-
|
659
|
-
<code class="ruby"> </code>
|
660
|
-
</li>
|
661
|
-
|
662
|
-
<li class="covered" data-hits="1" data-linenumber="5">
|
663
|
-
<span class="hits">1</span>
|
664
|
-
|
665
|
-
<code class="ruby"> it "acquires the lock if it does not exist" do</code>
|
666
|
-
</li>
|
667
|
-
|
668
|
-
<li class="never" data-hits="" data-linenumber="6">
|
669
|
-
|
670
|
-
|
671
|
-
<code class="ruby"> </code>
|
672
|
-
</li>
|
673
|
-
|
674
|
-
<li class="covered" data-hits="1" data-linenumber="7">
|
675
|
-
<span class="hits">1</span>
|
676
|
-
|
677
|
-
<code class="ruby"> @redis.lock("test") { }</code>
|
678
|
-
</li>
|
679
|
-
|
680
|
-
<li class="never" data-hits="" data-linenumber="8">
|
681
|
-
|
682
|
-
|
683
|
-
<code class="ruby"> </code>
|
684
|
-
</li>
|
685
|
-
|
686
|
-
<li class="never" data-hits="" data-linenumber="9">
|
687
|
-
|
688
|
-
|
689
|
-
<code class="ruby"> end</code>
|
690
|
-
</li>
|
691
|
-
|
692
|
-
<li class="never" data-hits="" data-linenumber="10">
|
693
|
-
|
694
|
-
|
695
|
-
<code class="ruby"> </code>
|
696
|
-
</li>
|
697
|
-
|
698
|
-
<li class="covered" data-hits="1" data-linenumber="11">
|
699
|
-
<span class="hits">1</span>
|
700
|
-
|
701
|
-
<code class="ruby"> it "waits and acquire lock" do</code>
|
702
|
-
</li>
|
703
|
-
|
704
|
-
<li class="never" data-hits="" data-linenumber="12">
|
705
|
-
|
706
|
-
|
707
|
-
<code class="ruby"> </code>
|
708
|
-
</li>
|
709
|
-
|
710
|
-
<li class="covered" data-hits="1" data-linenumber="13">
|
711
|
-
<span class="hits">1</span>
|
712
|
-
|
713
|
-
<code class="ruby"> start_time = Time.now.to_i</code>
|
714
|
-
</li>
|
715
|
-
|
716
|
-
<li class="never" data-hits="" data-linenumber="14">
|
717
|
-
|
718
|
-
|
719
|
-
<code class="ruby"> </code>
|
720
|
-
</li>
|
721
|
-
|
722
|
-
<li class="covered" data-hits="1" data-linenumber="15">
|
723
|
-
<span class="hits">1</span>
|
724
|
-
|
725
|
-
<code class="ruby"> Thread.new {</code>
|
726
|
-
</li>
|
727
|
-
|
728
|
-
<li class="covered" data-hits="1" data-linenumber="16">
|
729
|
-
<span class="hits">1</span>
|
730
|
-
|
731
|
-
<code class="ruby"> @redis.lock("test") { </code>
|
732
|
-
</li>
|
733
|
-
|
734
|
-
<li class="covered" data-hits="1" data-linenumber="17">
|
735
|
-
<span class="hits">1</span>
|
736
|
-
|
737
|
-
<code class="ruby"> Thread.current.join(1)</code>
|
738
|
-
</li>
|
739
|
-
|
740
|
-
<li class="covered" data-hits="1" data-linenumber="18">
|
741
|
-
<span class="hits">1</span>
|
742
|
-
|
743
|
-
<code class="ruby"> sleep(5) </code>
|
744
|
-
</li>
|
745
|
-
|
746
|
-
<li class="never" data-hits="" data-linenumber="19">
|
747
|
-
|
748
|
-
|
749
|
-
<code class="ruby"> }</code>
|
750
|
-
</li>
|
751
|
-
|
752
|
-
<li class="never" data-hits="" data-linenumber="20">
|
753
|
-
|
754
|
-
|
755
|
-
<code class="ruby"> }</code>
|
756
|
-
</li>
|
757
|
-
|
758
|
-
<li class="never" data-hits="" data-linenumber="21">
|
759
|
-
|
760
|
-
|
761
|
-
<code class="ruby"> </code>
|
762
|
-
</li>
|
763
|
-
|
764
|
-
<li class="covered" data-hits="1" data-linenumber="22">
|
765
|
-
<span class="hits">1</span>
|
766
|
-
|
767
|
-
<code class="ruby"> Thread.current.join(1)</code>
|
768
|
-
</li>
|
769
|
-
|
770
|
-
<li class="never" data-hits="" data-linenumber="23">
|
771
|
-
|
772
|
-
|
773
|
-
<code class="ruby"> </code>
|
774
|
-
</li>
|
775
|
-
|
776
|
-
<li class="covered" data-hits="1" data-linenumber="24">
|
777
|
-
<span class="hits">1</span>
|
778
|
-
|
779
|
-
<code class="ruby"> @redis.lock("test") { }</code>
|
780
|
-
</li>
|
781
|
-
|
782
|
-
<li class="never" data-hits="" data-linenumber="25">
|
783
|
-
|
784
|
-
|
785
|
-
<code class="ruby"> </code>
|
786
|
-
</li>
|
787
|
-
|
788
|
-
<li class="covered" data-hits="1" data-linenumber="26">
|
789
|
-
<span class="hits">1</span>
|
790
|
-
|
791
|
-
<code class="ruby"> (Time.now.to_i - start_time).should be > 4</code>
|
792
|
-
</li>
|
793
|
-
|
794
|
-
<li class="never" data-hits="" data-linenumber="27">
|
795
|
-
|
796
|
-
|
797
|
-
<code class="ruby"> </code>
|
798
|
-
</li>
|
799
|
-
|
800
|
-
<li class="never" data-hits="" data-linenumber="28">
|
801
|
-
|
802
|
-
|
803
|
-
<code class="ruby"> end</code>
|
804
|
-
</li>
|
805
|
-
|
806
|
-
<li class="never" data-hits="" data-linenumber="29">
|
807
|
-
|
808
|
-
|
809
|
-
<code class="ruby"> </code>
|
810
|
-
</li>
|
811
|
-
|
812
|
-
<li class="covered" data-hits="1" data-linenumber="30">
|
813
|
-
<span class="hits">1</span>
|
814
|
-
|
815
|
-
<code class="ruby"> it "waits and acquire expired lock" do</code>
|
816
|
-
</li>
|
817
|
-
|
818
|
-
<li class="never" data-hits="" data-linenumber="31">
|
819
|
-
|
820
|
-
|
821
|
-
<code class="ruby"> </code>
|
822
|
-
</li>
|
823
|
-
|
824
|
-
<li class="covered" data-hits="1" data-linenumber="32">
|
825
|
-
<span class="hits">1</span>
|
826
|
-
|
827
|
-
<code class="ruby"> start_time = Time.now.to_i</code>
|
828
|
-
</li>
|
829
|
-
|
830
|
-
<li class="never" data-hits="" data-linenumber="33">
|
831
|
-
|
832
|
-
|
833
|
-
<code class="ruby"> </code>
|
834
|
-
</li>
|
835
|
-
|
836
|
-
<li class="covered" data-hits="1" data-linenumber="34">
|
837
|
-
<span class="hits">1</span>
|
838
|
-
|
839
|
-
<code class="ruby"> Thread.new {</code>
|
840
|
-
</li>
|
841
|
-
|
842
|
-
<li class="covered" data-hits="1" data-linenumber="35">
|
843
|
-
<span class="hits">1</span>
|
844
|
-
|
845
|
-
<code class="ruby"> @redis.send(:acquire_lock, "test", 5, 10).should == true</code>
|
846
|
-
</li>
|
847
|
-
|
848
|
-
<li class="never" data-hits="" data-linenumber="36">
|
849
|
-
|
850
|
-
|
851
|
-
<code class="ruby"> }</code>
|
852
|
-
</li>
|
853
|
-
|
854
|
-
<li class="never" data-hits="" data-linenumber="37">
|
855
|
-
|
856
|
-
|
857
|
-
<code class="ruby"> </code>
|
858
|
-
</li>
|
859
|
-
|
860
|
-
<li class="covered" data-hits="1" data-linenumber="38">
|
861
|
-
<span class="hits">1</span>
|
862
|
-
|
863
|
-
<code class="ruby"> Thread.current.join(0.1)</code>
|
864
|
-
</li>
|
865
|
-
|
866
|
-
<li class="never" data-hits="" data-linenumber="39">
|
867
|
-
|
868
|
-
|
869
|
-
<code class="ruby"> </code>
|
870
|
-
</li>
|
871
|
-
|
872
|
-
<li class="covered" data-hits="1" data-linenumber="40">
|
873
|
-
<span class="hits">1</span>
|
874
|
-
|
875
|
-
<code class="ruby"> @redis.lock("test") { }</code>
|
876
|
-
</li>
|
877
|
-
|
878
|
-
<li class="never" data-hits="" data-linenumber="41">
|
879
|
-
|
880
|
-
|
881
|
-
<code class="ruby"> </code>
|
882
|
-
</li>
|
883
|
-
|
884
|
-
<li class="covered" data-hits="1" data-linenumber="42">
|
885
|
-
<span class="hits">1</span>
|
886
|
-
|
887
|
-
<code class="ruby"> (Time.now.to_i - start_time).should be > 4</code>
|
888
|
-
</li>
|
889
|
-
|
890
|
-
<li class="never" data-hits="" data-linenumber="43">
|
891
|
-
|
892
|
-
|
893
|
-
<code class="ruby"> </code>
|
894
|
-
</li>
|
895
|
-
|
896
|
-
<li class="never" data-hits="" data-linenumber="44">
|
897
|
-
|
898
|
-
|
899
|
-
<code class="ruby"> end</code>
|
900
|
-
</li>
|
901
|
-
|
902
|
-
<li class="never" data-hits="" data-linenumber="45">
|
903
|
-
|
904
|
-
|
905
|
-
<code class="ruby"> </code>
|
906
|
-
</li>
|
907
|
-
|
908
|
-
<li class="covered" data-hits="1" data-linenumber="46">
|
909
|
-
<span class="hits">1</span>
|
910
|
-
|
911
|
-
<code class="ruby"> it "fails to acquire lock" do</code>
|
912
|
-
</li>
|
913
|
-
|
914
|
-
<li class="never" data-hits="" data-linenumber="47">
|
915
|
-
|
916
|
-
|
917
|
-
<code class="ruby"> </code>
|
918
|
-
</li>
|
919
|
-
|
920
|
-
<li class="covered" data-hits="1" data-linenumber="48">
|
921
|
-
<span class="hits">1</span>
|
922
|
-
|
923
|
-
<code class="ruby"> Thread.new {</code>
|
924
|
-
</li>
|
925
|
-
|
926
|
-
<li class="covered" data-hits="1" data-linenumber="49">
|
927
|
-
<span class="hits">1</span>
|
928
|
-
|
929
|
-
<code class="ruby"> @redis.lock("test") { </code>
|
930
|
-
</li>
|
931
|
-
|
932
|
-
<li class="covered" data-hits="1" data-linenumber="50">
|
933
|
-
<span class="hits">1</span>
|
934
|
-
|
935
|
-
<code class="ruby"> Thread.current.join(1)</code>
|
936
|
-
</li>
|
937
|
-
|
938
|
-
<li class="covered" data-hits="1" data-linenumber="51">
|
939
|
-
<span class="hits">1</span>
|
940
|
-
|
941
|
-
<code class="ruby"> sleep(5) </code>
|
942
|
-
</li>
|
943
|
-
|
944
|
-
<li class="never" data-hits="" data-linenumber="52">
|
945
|
-
|
946
|
-
|
947
|
-
<code class="ruby"> }</code>
|
948
|
-
</li>
|
949
|
-
|
950
|
-
<li class="never" data-hits="" data-linenumber="53">
|
951
|
-
|
952
|
-
|
953
|
-
<code class="ruby"> }</code>
|
954
|
-
</li>
|
955
|
-
|
956
|
-
<li class="never" data-hits="" data-linenumber="54">
|
957
|
-
|
958
|
-
|
959
|
-
<code class="ruby"> </code>
|
960
|
-
</li>
|
961
|
-
|
962
|
-
<li class="covered" data-hits="1" data-linenumber="55">
|
963
|
-
<span class="hits">1</span>
|
964
|
-
|
965
|
-
<code class="ruby"> Thread.current.join(1)</code>
|
966
|
-
</li>
|
967
|
-
|
968
|
-
<li class="covered" data-hits="2" data-linenumber="56">
|
969
|
-
<span class="hits">2</span>
|
970
|
-
|
971
|
-
<code class="ruby"> lambda { @redis.lock("test", 10, 2) { } }.should raise_error</code>
|
972
|
-
</li>
|
973
|
-
|
974
|
-
<li class="never" data-hits="" data-linenumber="57">
|
975
|
-
|
976
|
-
|
977
|
-
<code class="ruby"> </code>
|
978
|
-
</li>
|
979
|
-
|
980
|
-
<li class="never" data-hits="" data-linenumber="58">
|
981
|
-
|
982
|
-
|
983
|
-
<code class="ruby"> end</code>
|
984
|
-
</li>
|
985
|
-
|
986
|
-
<li class="never" data-hits="" data-linenumber="59">
|
987
|
-
|
988
|
-
|
989
|
-
<code class="ruby"> </code>
|
990
|
-
</li>
|
991
|
-
|
992
|
-
<li class="covered" data-hits="1" data-linenumber="60">
|
993
|
-
<span class="hits">1</span>
|
994
|
-
|
995
|
-
<code class="ruby"> it "correctly release the lock when error is raised" do</code>
|
996
|
-
</li>
|
997
|
-
|
998
|
-
<li class="never" data-hits="" data-linenumber="61">
|
999
|
-
|
1000
|
-
|
1001
|
-
<code class="ruby"> </code>
|
1002
|
-
</li>
|
1003
|
-
|
1004
|
-
<li class="covered" data-hits="1" data-linenumber="62">
|
1005
|
-
<span class="hits">1</span>
|
1006
|
-
|
1007
|
-
<code class="ruby"> begin</code>
|
1008
|
-
</li>
|
1009
|
-
|
1010
|
-
<li class="covered" data-hits="1" data-linenumber="63">
|
1011
|
-
<span class="hits">1</span>
|
1012
|
-
|
1013
|
-
<code class="ruby"> @redis.lock("test") { </code>
|
1014
|
-
</li>
|
1015
|
-
|
1016
|
-
<li class="covered" data-hits="1" data-linenumber="64">
|
1017
|
-
<span class="hits">1</span>
|
1018
|
-
|
1019
|
-
<code class="ruby"> raise 'some error'</code>
|
1020
|
-
</li>
|
1021
|
-
|
1022
|
-
<li class="never" data-hits="" data-linenumber="65">
|
1023
|
-
|
1024
|
-
|
1025
|
-
<code class="ruby"> }</code>
|
1026
|
-
</li>
|
1027
|
-
|
1028
|
-
<li class="never" data-hits="" data-linenumber="66">
|
1029
|
-
|
1030
|
-
|
1031
|
-
<code class="ruby"> rescue</code>
|
1032
|
-
</li>
|
1033
|
-
|
1034
|
-
<li class="never" data-hits="" data-linenumber="67">
|
1035
|
-
|
1036
|
-
|
1037
|
-
<code class="ruby"> end</code>
|
1038
|
-
</li>
|
1039
|
-
|
1040
|
-
<li class="never" data-hits="" data-linenumber="68">
|
1041
|
-
|
1042
|
-
|
1043
|
-
<code class="ruby"> </code>
|
1044
|
-
</li>
|
1045
|
-
|
1046
|
-
<li class="covered" data-hits="1" data-linenumber="69">
|
1047
|
-
<span class="hits">1</span>
|
1048
|
-
|
1049
|
-
<code class="ruby"> @redis.get(@redis.send(:ruby_redis_lock_key, "test")).should == nil</code>
|
1050
|
-
</li>
|
1051
|
-
|
1052
|
-
<li class="never" data-hits="" data-linenumber="70">
|
1053
|
-
|
1054
|
-
|
1055
|
-
<code class="ruby"> </code>
|
1056
|
-
</li>
|
1057
|
-
|
1058
|
-
<li class="never" data-hits="" data-linenumber="71">
|
1059
|
-
|
1060
|
-
|
1061
|
-
<code class="ruby"> end</code>
|
1062
|
-
</li>
|
1063
|
-
|
1064
|
-
<li class="never" data-hits="" data-linenumber="72">
|
1065
|
-
|
1066
|
-
|
1067
|
-
<code class="ruby"> </code>
|
1068
|
-
</li>
|
1069
|
-
|
1070
|
-
<li class="never" data-hits="" data-linenumber="73">
|
1071
|
-
|
1072
|
-
|
1073
|
-
<code class="ruby">end</code>
|
1074
|
-
</li>
|
1075
|
-
|
1076
|
-
</ol>
|
1077
|
-
</pre>
|
1078
|
-
</div>
|
1079
|
-
|
1080
|
-
<div class="source_table" id="6fd79c5de64e5c880425dbb4668e8de8bdb655fb">
|
1081
|
-
<div class="header">
|
1082
|
-
<h3>spec/release_lock_spec.rb</h3>
|
1083
|
-
<h4><span class="green">100.0 %</span> covered</h4>
|
1084
|
-
<div>
|
1085
|
-
<b>9</b> relevant lines.
|
1086
|
-
<span class="green"><b>9</b> lines covered</span> and
|
1087
|
-
<span class="red"><b>0</b> lines missed.</span>
|
1088
|
-
</div>
|
1089
|
-
</div>
|
1090
|
-
|
1091
|
-
<pre>
|
1092
|
-
<ol>
|
1093
|
-
|
1094
|
-
<li class="covered" data-hits="1" data-linenumber="1">
|
1095
|
-
<span class="hits">1</span>
|
1096
|
-
|
1097
|
-
<code class="ruby">require 'spec_helper'</code>
|
1098
|
-
</li>
|
1099
|
-
|
1100
|
-
<li class="never" data-hits="" data-linenumber="2">
|
1101
|
-
|
1102
|
-
|
1103
|
-
<code class="ruby"></code>
|
1104
|
-
</li>
|
1105
|
-
|
1106
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
1107
|
-
<span class="hits">1</span>
|
1108
|
-
|
1109
|
-
<code class="ruby">describe 'release_lock' do</code>
|
1110
|
-
</li>
|
1111
|
-
|
1112
|
-
<li class="never" data-hits="" data-linenumber="4">
|
1113
|
-
|
1114
|
-
|
1115
|
-
<code class="ruby"> </code>
|
1116
|
-
</li>
|
1117
|
-
|
1118
|
-
<li class="covered" data-hits="1" data-linenumber="5">
|
1119
|
-
<span class="hits">1</span>
|
1120
|
-
|
1121
|
-
<code class="ruby"> it "release lock when the lock is not expired" do</code>
|
1122
|
-
</li>
|
1123
|
-
|
1124
|
-
<li class="never" data-hits="" data-linenumber="6">
|
1125
|
-
|
1126
|
-
|
1127
|
-
<code class="ruby"> </code>
|
1128
|
-
</li>
|
1129
|
-
|
1130
|
-
<li class="covered" data-hits="1" data-linenumber="7">
|
1131
|
-
<span class="hits">1</span>
|
1132
|
-
|
1133
|
-
<code class="ruby"> @redis.send(:acquire_lock, "test", 69).should == true</code>
|
1134
|
-
</li>
|
1135
|
-
|
1136
|
-
<li class="never" data-hits="" data-linenumber="8">
|
1137
|
-
|
1138
|
-
|
1139
|
-
<code class="ruby"> </code>
|
1140
|
-
</li>
|
1141
|
-
|
1142
|
-
<li class="covered" data-hits="1" data-linenumber="9">
|
1143
|
-
<span class="hits">1</span>
|
1144
|
-
|
1145
|
-
<code class="ruby"> @redis.send(:release_lock, "test").should == true</code>
|
1146
|
-
</li>
|
1147
|
-
|
1148
|
-
<li class="never" data-hits="" data-linenumber="10">
|
1149
|
-
|
1150
|
-
|
1151
|
-
<code class="ruby"> </code>
|
1152
|
-
</li>
|
1153
|
-
|
1154
|
-
<li class="never" data-hits="" data-linenumber="11">
|
1155
|
-
|
1156
|
-
|
1157
|
-
<code class="ruby"> end</code>
|
1158
|
-
</li>
|
1159
|
-
|
1160
|
-
<li class="never" data-hits="" data-linenumber="12">
|
1161
|
-
|
1162
|
-
|
1163
|
-
<code class="ruby"> </code>
|
1164
|
-
</li>
|
1165
|
-
|
1166
|
-
<li class="covered" data-hits="1" data-linenumber="13">
|
1167
|
-
<span class="hits">1</span>
|
1168
|
-
|
1169
|
-
<code class="ruby"> it "does not release lock if the lock is already expired" do</code>
|
1170
|
-
</li>
|
1171
|
-
|
1172
|
-
<li class="never" data-hits="" data-linenumber="14">
|
1173
|
-
|
1174
|
-
|
1175
|
-
<code class="ruby"> </code>
|
1176
|
-
</li>
|
1177
|
-
|
1178
|
-
<li class="covered" data-hits="1" data-linenumber="15">
|
1179
|
-
<span class="hits">1</span>
|
1180
|
-
|
1181
|
-
<code class="ruby"> @redis.send(:acquire_lock, "test", 0.1).should == true</code>
|
1182
|
-
</li>
|
1183
|
-
|
1184
|
-
<li class="never" data-hits="" data-linenumber="16">
|
1185
|
-
|
1186
|
-
|
1187
|
-
<code class="ruby"> </code>
|
1188
|
-
</li>
|
1189
|
-
|
1190
|
-
<li class="covered" data-hits="1" data-linenumber="17">
|
1191
|
-
<span class="hits">1</span>
|
1192
|
-
|
1193
|
-
<code class="ruby"> sleep(1)</code>
|
1194
|
-
</li>
|
1195
|
-
|
1196
|
-
<li class="covered" data-hits="1" data-linenumber="18">
|
1197
|
-
<span class="hits">1</span>
|
1198
|
-
|
1199
|
-
<code class="ruby"> @redis.send(:release_lock, "test").should == false</code>
|
1200
|
-
</li>
|
1201
|
-
|
1202
|
-
<li class="never" data-hits="" data-linenumber="19">
|
1203
|
-
|
1204
|
-
|
1205
|
-
<code class="ruby"> </code>
|
1206
|
-
</li>
|
1207
|
-
|
1208
|
-
<li class="never" data-hits="" data-linenumber="20">
|
1209
|
-
|
1210
|
-
|
1211
|
-
<code class="ruby"> end</code>
|
1212
|
-
</li>
|
1213
|
-
|
1214
|
-
<li class="never" data-hits="" data-linenumber="21">
|
1215
|
-
|
1216
|
-
|
1217
|
-
<code class="ruby"> </code>
|
1218
|
-
</li>
|
1219
|
-
|
1220
|
-
<li class="never" data-hits="" data-linenumber="22">
|
1221
|
-
|
1222
|
-
|
1223
|
-
<code class="ruby">end</code>
|
1224
|
-
</li>
|
1225
|
-
|
1226
|
-
</ol>
|
1227
|
-
</pre>
|
1228
|
-
</div>
|
1229
|
-
|
1230
|
-
<div class="source_table" id="a2b71c3de290f655a4fd2b1a82e13ca922365681">
|
1231
|
-
<div class="header">
|
1232
|
-
<h3>spec/spec_helper.rb</h3>
|
1233
|
-
<h4><span class="green">100.0 %</span> covered</h4>
|
1234
|
-
<div>
|
1235
|
-
<b>10</b> relevant lines.
|
1236
|
-
<span class="green"><b>10</b> lines covered</span> and
|
1237
|
-
<span class="red"><b>0</b> lines missed.</span>
|
1238
|
-
</div>
|
1239
|
-
</div>
|
1240
|
-
|
1241
|
-
<pre>
|
1242
|
-
<ol>
|
1243
|
-
|
1244
|
-
<li class="never" data-hits="" data-linenumber="1">
|
1245
|
-
|
1246
|
-
|
1247
|
-
<code class="ruby"># encoding: utf-8</code>
|
1248
|
-
</li>
|
1249
|
-
|
1250
|
-
<li class="covered" data-hits="1" data-linenumber="2">
|
1251
|
-
<span class="hits">1</span>
|
1252
|
-
|
1253
|
-
<code class="ruby">require 'simplecov'</code>
|
1254
|
-
</li>
|
1255
|
-
|
1256
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
1257
|
-
<span class="hits">1</span>
|
1258
|
-
|
1259
|
-
<code class="ruby">SimpleCov.start do</code>
|
1260
|
-
</li>
|
1261
|
-
|
1262
|
-
<li class="covered" data-hits="1" data-linenumber="4">
|
1263
|
-
<span class="hits">1</span>
|
1264
|
-
|
1265
|
-
<code class="ruby"> coverage_dir("coverage") </code>
|
1266
|
-
</li>
|
1267
|
-
|
1268
|
-
<li class="never" data-hits="" data-linenumber="5">
|
1269
|
-
|
1270
|
-
|
1271
|
-
<code class="ruby">end</code>
|
1272
|
-
</li>
|
1273
|
-
|
1274
|
-
<li class="never" data-hits="" data-linenumber="6">
|
1275
|
-
|
1276
|
-
|
1277
|
-
<code class="ruby"></code>
|
1278
|
-
</li>
|
1279
|
-
|
1280
|
-
<li class="covered" data-hits="1" data-linenumber="7">
|
1281
|
-
<span class="hits">1</span>
|
1282
|
-
|
1283
|
-
<code class="ruby">require 'rspec'</code>
|
1284
|
-
</li>
|
1285
|
-
|
1286
|
-
<li class="never" data-hits="" data-linenumber="8">
|
1287
|
-
|
1288
|
-
|
1289
|
-
<code class="ruby"></code>
|
1290
|
-
</li>
|
1291
|
-
|
1292
|
-
<li class="covered" data-hits="1" data-linenumber="9">
|
1293
|
-
<span class="hits">1</span>
|
1294
|
-
|
1295
|
-
<code class="ruby">require File.expand_path("../../lib/ruby_redis_lock",__FILE__)</code>
|
1296
|
-
</li>
|
1297
|
-
|
1298
|
-
<li class="never" data-hits="" data-linenumber="10">
|
1299
|
-
|
1300
|
-
|
1301
|
-
<code class="ruby"></code>
|
1302
|
-
</li>
|
1303
|
-
|
1304
|
-
<li class="covered" data-hits="1" data-linenumber="11">
|
1305
|
-
<span class="hits">1</span>
|
1306
|
-
|
1307
|
-
<code class="ruby">RSpec.configure do |config|</code>
|
1308
|
-
</li>
|
1309
|
-
|
1310
|
-
<li class="never" data-hits="" data-linenumber="12">
|
1311
|
-
|
1312
|
-
|
1313
|
-
<code class="ruby"> </code>
|
1314
|
-
</li>
|
1315
|
-
|
1316
|
-
<li class="covered" data-hits="1" data-linenumber="13">
|
1317
|
-
<span class="hits">1</span>
|
1318
|
-
|
1319
|
-
<code class="ruby"> config.mock_with :rspec</code>
|
1320
|
-
</li>
|
1321
|
-
|
1322
|
-
<li class="never" data-hits="" data-linenumber="14">
|
1323
|
-
|
1324
|
-
|
1325
|
-
<code class="ruby"> </code>
|
1326
|
-
</li>
|
1327
|
-
|
1328
|
-
<li class="covered" data-hits="1" data-linenumber="15">
|
1329
|
-
<span class="hits">1</span>
|
1330
|
-
|
1331
|
-
<code class="ruby"> config.before(:each) do</code>
|
1332
|
-
</li>
|
1333
|
-
|
1334
|
-
<li class="covered" data-hits="15" data-linenumber="16">
|
1335
|
-
<span class="hits">15</span>
|
1336
|
-
|
1337
|
-
<code class="ruby"> @redis = Redis.new</code>
|
1338
|
-
</li>
|
1339
|
-
|
1340
|
-
<li class="covered" data-hits="15" data-linenumber="17">
|
1341
|
-
<span class="hits">15</span>
|
1342
|
-
|
1343
|
-
<code class="ruby"> @redis.flushall</code>
|
1344
|
-
</li>
|
1345
|
-
|
1346
|
-
<li class="never" data-hits="" data-linenumber="18">
|
1347
|
-
|
1348
|
-
|
1349
|
-
<code class="ruby"> end</code>
|
1350
|
-
</li>
|
1351
|
-
|
1352
|
-
<li class="never" data-hits="" data-linenumber="19">
|
1353
|
-
|
1354
|
-
|
1355
|
-
<code class="ruby"> </code>
|
1356
|
-
</li>
|
1357
|
-
|
1358
|
-
<li class="never" data-hits="" data-linenumber="20">
|
1359
|
-
|
1360
|
-
|
1361
|
-
<code class="ruby">end</code>
|
1362
|
-
</li>
|
1363
|
-
|
1364
|
-
</ol>
|
1365
|
-
</pre>
|
1366
|
-
</div>
|
1367
|
-
|
1368
|
-
<div class="source_table" id="13c0511db80f553f86679faef9c740541d8ed885">
|
1369
|
-
<div class="header">
|
1370
|
-
<h3>spec/try_acquire_lock_spec.rb</h3>
|
1371
|
-
<h4><span class="green">100.0 %</span> covered</h4>
|
1372
|
-
<div>
|
1373
|
-
<b>12</b> relevant lines.
|
1374
|
-
<span class="green"><b>12</b> lines covered</span> and
|
1375
|
-
<span class="red"><b>0</b> lines missed.</span>
|
1376
|
-
</div>
|
1377
|
-
</div>
|
1378
|
-
|
1379
|
-
<pre>
|
1380
|
-
<ol>
|
1381
|
-
|
1382
|
-
<li class="covered" data-hits="1" data-linenumber="1">
|
1383
|
-
<span class="hits">1</span>
|
1384
|
-
|
1385
|
-
<code class="ruby">require 'spec_helper'</code>
|
1386
|
-
</li>
|
1387
|
-
|
1388
|
-
<li class="never" data-hits="" data-linenumber="2">
|
1389
|
-
|
1390
|
-
|
1391
|
-
<code class="ruby"></code>
|
1392
|
-
</li>
|
1393
|
-
|
1394
|
-
<li class="covered" data-hits="1" data-linenumber="3">
|
1395
|
-
<span class="hits">1</span>
|
1396
|
-
|
1397
|
-
<code class="ruby">describe 'try_acquire_lock' do</code>
|
1398
|
-
</li>
|
1399
|
-
|
1400
|
-
<li class="never" data-hits="" data-linenumber="4">
|
1401
|
-
|
1402
|
-
|
1403
|
-
<code class="ruby"> </code>
|
1404
|
-
</li>
|
1405
|
-
|
1406
|
-
<li class="covered" data-hits="1" data-linenumber="5">
|
1407
|
-
<span class="hits">1</span>
|
1408
|
-
|
1409
|
-
<code class="ruby"> it "acquires lock when the lock does not exist" do</code>
|
1410
|
-
</li>
|
1411
|
-
|
1412
|
-
<li class="never" data-hits="" data-linenumber="6">
|
1413
|
-
|
1414
|
-
|
1415
|
-
<code class="ruby"> </code>
|
1416
|
-
</li>
|
1417
|
-
|
1418
|
-
<li class="covered" data-hits="1" data-linenumber="7">
|
1419
|
-
<span class="hits">1</span>
|
1420
|
-
|
1421
|
-
<code class="ruby"> @redis.send(:try_acquire_lock, "test").should == true</code>
|
1422
|
-
</li>
|
1423
|
-
|
1424
|
-
<li class="never" data-hits="" data-linenumber="8">
|
1425
|
-
|
1426
|
-
|
1427
|
-
<code class="ruby"> </code>
|
1428
|
-
</li>
|
1429
|
-
|
1430
|
-
<li class="never" data-hits="" data-linenumber="9">
|
1431
|
-
|
1432
|
-
|
1433
|
-
<code class="ruby"> end</code>
|
1434
|
-
</li>
|
1435
|
-
|
1436
|
-
<li class="never" data-hits="" data-linenumber="10">
|
1437
|
-
|
1438
|
-
|
1439
|
-
<code class="ruby"> </code>
|
1440
|
-
</li>
|
1441
|
-
|
1442
|
-
<li class="covered" data-hits="1" data-linenumber="11">
|
1443
|
-
<span class="hits">1</span>
|
1444
|
-
|
1445
|
-
<code class="ruby"> it "does not acquire lock when the lock is alive" do</code>
|
1446
|
-
</li>
|
1447
|
-
|
1448
|
-
<li class="never" data-hits="" data-linenumber="12">
|
1449
|
-
|
1450
|
-
|
1451
|
-
<code class="ruby"> </code>
|
1452
|
-
</li>
|
1453
|
-
|
1454
|
-
<li class="covered" data-hits="1" data-linenumber="13">
|
1455
|
-
<span class="hits">1</span>
|
1456
|
-
|
1457
|
-
<code class="ruby"> @redis.send(:try_acquire_lock, "test").should == true</code>
|
1458
|
-
</li>
|
1459
|
-
|
1460
|
-
<li class="covered" data-hits="1" data-linenumber="14">
|
1461
|
-
<span class="hits">1</span>
|
1462
|
-
|
1463
|
-
<code class="ruby"> @redis.send(:try_acquire_lock, "test").should == false</code>
|
1464
|
-
</li>
|
1465
|
-
|
1466
|
-
<li class="never" data-hits="" data-linenumber="15">
|
1467
|
-
|
1468
|
-
|
1469
|
-
<code class="ruby"> </code>
|
1470
|
-
</li>
|
1471
|
-
|
1472
|
-
<li class="never" data-hits="" data-linenumber="16">
|
1473
|
-
|
1474
|
-
|
1475
|
-
<code class="ruby"> end</code>
|
1476
|
-
</li>
|
1477
|
-
|
1478
|
-
<li class="never" data-hits="" data-linenumber="17">
|
1479
|
-
|
1480
|
-
|
1481
|
-
<code class="ruby"> </code>
|
1482
|
-
</li>
|
1483
|
-
|
1484
|
-
<li class="covered" data-hits="1" data-linenumber="18">
|
1485
|
-
<span class="hits">1</span>
|
1486
|
-
|
1487
|
-
<code class="ruby"> it "acquires lock when the lock is expired" do</code>
|
1488
|
-
</li>
|
1489
|
-
|
1490
|
-
<li class="never" data-hits="" data-linenumber="19">
|
1491
|
-
|
1492
|
-
|
1493
|
-
<code class="ruby"> </code>
|
1494
|
-
</li>
|
1495
|
-
|
1496
|
-
<li class="covered" data-hits="1" data-linenumber="20">
|
1497
|
-
<span class="hits">1</span>
|
1498
|
-
|
1499
|
-
<code class="ruby"> @redis.send(:try_acquire_lock, "test", 0.1).should == true</code>
|
1500
|
-
</li>
|
1501
|
-
|
1502
|
-
<li class="never" data-hits="" data-linenumber="21">
|
1503
|
-
|
1504
|
-
|
1505
|
-
<code class="ruby"> </code>
|
1506
|
-
</li>
|
1507
|
-
|
1508
|
-
<li class="covered" data-hits="1" data-linenumber="22">
|
1509
|
-
<span class="hits">1</span>
|
1510
|
-
|
1511
|
-
<code class="ruby"> sleep(1)</code>
|
1512
|
-
</li>
|
1513
|
-
|
1514
|
-
<li class="covered" data-hits="1" data-linenumber="23">
|
1515
|
-
<span class="hits">1</span>
|
1516
|
-
|
1517
|
-
<code class="ruby"> @redis.send(:try_acquire_lock, "test").should == true</code>
|
1518
|
-
</li>
|
1519
|
-
|
1520
|
-
<li class="never" data-hits="" data-linenumber="24">
|
1521
|
-
|
1522
|
-
|
1523
|
-
<code class="ruby"> </code>
|
1524
|
-
</li>
|
1525
|
-
|
1526
|
-
<li class="never" data-hits="" data-linenumber="25">
|
1527
|
-
|
1528
|
-
|
1529
|
-
<code class="ruby"> end</code>
|
1530
|
-
</li>
|
1531
|
-
|
1532
|
-
<li class="never" data-hits="" data-linenumber="26">
|
1533
|
-
|
1534
|
-
|
1535
|
-
<code class="ruby"> </code>
|
1536
|
-
</li>
|
1537
|
-
|
1538
|
-
<li class="covered" data-hits="1" data-linenumber="27">
|
1539
|
-
<span class="hits">1</span>
|
1540
|
-
|
1541
|
-
<code class="ruby"> it "does not acquire lock when the lock is expired but somebody else already successfully acquire the same lock" do</code>
|
1542
|
-
</li>
|
1543
|
-
|
1544
|
-
<li class="never" data-hits="" data-linenumber="28">
|
1545
|
-
|
1546
|
-
|
1547
|
-
<code class="ruby"> </code>
|
1548
|
-
</li>
|
1549
|
-
|
1550
|
-
<li class="never" data-hits="" data-linenumber="29">
|
1551
|
-
|
1552
|
-
|
1553
|
-
<code class="ruby"> end</code>
|
1554
|
-
</li>
|
1555
|
-
|
1556
|
-
<li class="never" data-hits="" data-linenumber="30">
|
1557
|
-
|
1558
|
-
|
1559
|
-
<code class="ruby"> </code>
|
1560
|
-
</li>
|
1561
|
-
|
1562
|
-
<li class="never" data-hits="" data-linenumber="31">
|
1563
|
-
|
1564
|
-
|
1565
|
-
<code class="ruby">end</code>
|
1566
|
-
</li>
|
1567
|
-
|
1568
|
-
</ol>
|
1569
|
-
</pre>
|
1570
|
-
</div>
|
1571
|
-
|
1572
|
-
</div>
|
1573
|
-
</div>
|
1574
|
-
</body>
|
1575
|
-
</html>
|