jruby_threach 0.3.0-java → 0.4.0-java
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.
- data/README.markdown +6 -2
- data/lib/jruby_threach.rb +3 -4
- metadata +3 -3
data/README.markdown
CHANGED
@@ -59,9 +59,10 @@ You can also use Threach::MultiEnum, the class behind `#mthreach`, by itself, fo
|
|
59
59
|
|
60
60
|
me = Threach::MultiEnum.new(
|
61
61
|
[1..10, 'a'..'z', File.open('myfile.txt')], # array of enumerables
|
62
|
+
3, # number of threads. nil => one per enum
|
62
63
|
:each, # enumerator method to use
|
63
|
-
10
|
64
|
-
|
64
|
+
10 # size of the internal queue
|
65
|
+
)
|
65
66
|
me.each {|item| process_item(item)}
|
66
67
|
|
67
68
|
|
@@ -71,6 +72,9 @@ You can also use Threach::MultiEnum, the class behind `#mthreach`, by itself, fo
|
|
71
72
|
|
72
73
|
**Spurious warning** As of this writing, breaking out of a `threach` loop (by calling `break` in the passed block) causes JRuby to print a warning of the form, 'Exception in thread "RubyThread-44: samples.rb:1"org.JRuby.exceptions.JumpException$BreakJump'. Hopefully this can be tracked down and eliminated by the JRuby team.
|
73
74
|
|
75
|
+
## CHANGES
|
76
|
+
|
77
|
+
* 0.4.0 Changed signature of Threach::MultiEnum.new to put no. threads up front.
|
74
78
|
|
75
79
|
## Contributing to JRuby_threach
|
76
80
|
|
data/lib/jruby_threach.rb
CHANGED
@@ -60,13 +60,13 @@ module Threach
|
|
60
60
|
|
61
61
|
# Create a new MultiEnum
|
62
62
|
# @param [Enumerable] enumerators A list of enumerators that you wish to act as a single enum
|
63
|
+
# @param [Integer, nil] numthreads The number of threads to dedicate to pulling items
|
63
64
|
# @param [Symbol] iterator Which iterator to call against each enum
|
64
65
|
# @param [Integer] size The size of the underlying queue
|
65
|
-
# @param [Integer, nil] numthreads The number of threads to dedicate to pulling items
|
66
66
|
# off the enumerators and pushing them onto the shared queue. nil or zero implies one for
|
67
67
|
# each enumerator
|
68
68
|
# @return [Threach::MultiEnum] the new multi-enumerator
|
69
|
-
def initialize enumerators, iterator = :each, size = 5
|
69
|
+
def initialize enumerators, numthreads=nil, iterator = :each, size = 5
|
70
70
|
@enum = enumerators
|
71
71
|
@iter = iterator
|
72
72
|
@size = size
|
@@ -139,7 +139,7 @@ module Enumerable
|
|
139
139
|
# [1..10, 'a'..'z'].mthreach(2,2) {|i| process_item(i)}
|
140
140
|
#
|
141
141
|
def mthreach(pthreads=nil, threads = 0, iterator = :each, &blk)
|
142
|
-
me = Threach::MultiEnum.new(self, iterator, threads
|
142
|
+
me = Threach::MultiEnum.new(self, pthreads, iterator, threads*3)
|
143
143
|
me.send(:threach, threads, iterator, &blk)
|
144
144
|
end
|
145
145
|
|
@@ -274,7 +274,6 @@ module Enumerable
|
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
277
|
-
__END__
|
278
277
|
|
279
278
|
class DelayedEnum
|
280
279
|
include Enumerable
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jruby_threach
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.4.0
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- BillDueber
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-01 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -102,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
102
|
requirements:
|
103
103
|
- - ">="
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
hash: -
|
105
|
+
hash: -424975983
|
106
106
|
segments:
|
107
107
|
- 0
|
108
108
|
version: "0"
|