threadify 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +9 -4
- data/README.erb +5 -0
- data/lib/threadify.rb +15 -1
- data/threadify.gemspec +1 -1
- metadata +2 -2
data/README
CHANGED
@@ -64,9 +64,9 @@ SAMPLES
|
|
64
64
|
~ > ruby sample/a.rb
|
65
65
|
|
66
66
|
---
|
67
|
-
without threadify:
|
67
|
+
without threadify: 10.1121168136597
|
68
68
|
---
|
69
|
-
with threadify:
|
69
|
+
with threadify: 8.11967301368713
|
70
70
|
|
71
71
|
|
72
72
|
<========< sample/b.rb >========>
|
@@ -118,9 +118,9 @@ SAMPLES
|
|
118
118
|
~ > ruby sample/b.rb
|
119
119
|
|
120
120
|
---
|
121
|
-
without threadify:
|
121
|
+
without threadify: 20.6975500583649
|
122
122
|
---
|
123
|
-
with threadify: 0.
|
123
|
+
with threadify: 0.923933982849121
|
124
124
|
---
|
125
125
|
:needle: 42
|
126
126
|
:a: 42
|
@@ -130,6 +130,11 @@ SAMPLES
|
|
130
130
|
|
131
131
|
|
132
132
|
HISTORY
|
133
|
+
1.3.0
|
134
|
+
- added Threadify(*args, &block) method to execute arbitrary code in parallel
|
135
|
+
|
136
|
+
Threadify(8){ puts Thread.current.object_id }.size #=> 8
|
137
|
+
|
133
138
|
1.1.0
|
134
139
|
- added ability to specify arbitrary iterator (not only each)
|
135
140
|
[0,1,2,3].threadify(:each_slice, 2){|ary| ary}
|
data/README.erb
CHANGED
@@ -22,6 +22,11 @@ SAMPLES
|
|
22
22
|
|
23
23
|
|
24
24
|
HISTORY
|
25
|
+
1.3.0
|
26
|
+
- added Threadify(*args, &block) method to execute arbitrary code in parallel
|
27
|
+
|
28
|
+
Threadify(8){ puts Thread.current.object_id }.size #=> 8
|
29
|
+
|
25
30
|
1.1.0
|
26
31
|
- added ability to specify arbitrary iterator (not only each)
|
27
32
|
[0,1,2,3].threadify(:each_slice, 2){|ary| ary}
|
data/lib/threadify.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Threadify
|
2
|
-
Threadify::VERSION = '1.
|
2
|
+
Threadify::VERSION = '1.3.0' unless defined?(Threadify::VERSION)
|
3
3
|
def Threadify.version() Threadify::VERSION end
|
4
4
|
|
5
5
|
require 'thread'
|
@@ -18,6 +18,20 @@ module Threadify
|
|
18
18
|
class Error < ::StandardError; end
|
19
19
|
end
|
20
20
|
|
21
|
+
def Threadify(*args, &block)
|
22
|
+
# setup
|
23
|
+
#
|
24
|
+
opts = args.last.is_a?(Hash) ? args.pop : {}
|
25
|
+
opts.keys.each{|key| opts[key.to_s.to_sym] = opts.delete(key)}
|
26
|
+
opts[:threads] ||= (Numeric === args.first ? args.shift : Threadify.threads)
|
27
|
+
opts[:strategy] ||= (args.empty? ? Threadify.strategy : args)
|
28
|
+
|
29
|
+
threads = Integer(opts[:threads])
|
30
|
+
|
31
|
+
array_of_blocks = Array.new(threads){ block }
|
32
|
+
array_of_blocks.threadify(opts){|b| b.call()}
|
33
|
+
end
|
34
|
+
|
21
35
|
module Enumerable
|
22
36
|
def threadify(*args, &block)
|
23
37
|
# setup
|
data/threadify.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: threadify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ara T. Howard
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-09-10 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|