@@ -125,14 +125,14 @@ <h2>Overview</h2><div class="docstring">
125
125
< pre class ="code ruby "> < code class ="ruby "> < span class ='id identifier rubyid_threads '> threads</ span > < span class ='op '> =</ span > < span class ='const '> < span class ='object_link '> < a href ="../Array.html " title ="Concurrent::Array (class) "> Array</ a > </ span > </ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_new '> new</ span > < span class ='lparen '> (</ span > < span class ='int '> 3</ span > < span class ='rparen '> )</ span > < span class ='lbrace '> {</ span > < span class ='op '> |</ span > < span class ='id identifier rubyid_i '> i</ span > < span class ='op '> |</ span > < span class ='const '> Thread</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_new '> new</ span > < span class ='lbrace '> {</ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_push '> push</ span > < span class ='label '> message:</ span > < span class ='id identifier rubyid_i '> i</ span > < span class ='rbrace '> }</ span > < span class ='rbrace '> }</ span >
126
126
< span class ='id identifier rubyid_sleep '> sleep</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # let the threads run
127
127
</ span > < span class ='id identifier rubyid_threads '> threads</ span >
128
- < span class ='
comment '
> # => [#<Thread:
[email protected] :14
sleep_forever >,
128
+ < span class ='
comment '
> # => [#<Thread:
[email protected] :14
dead >,
129
129
</ span > < span class ='
comment '
> # #<Thread:
[email protected] :14 dead>,
130
- </ span > < span class ='
comment '
> # #<Thread:
[email protected] :14
dead >]
130
+ </ span > < span class ='
comment '
> # #<Thread:
[email protected] :14
sleep_forever >]
131
131
</ span > </ code > </ pre >
132
132
133
133
< p > When message is popped the last thread continues and finishes as well.</ p >
134
134
135
- < pre class ="code ruby "> < code class ="ruby "> < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='comment '> # => {:message=>2 }
135
+ < pre class ="code ruby "> < code class ="ruby "> < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='comment '> # => {:message=>0 }
136
136
</ span > < span class ='id identifier rubyid_threads '> threads</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_map '> map</ span > < span class ='lparen '> (</ span > < span class ='op '> &</ span > < span class ='symbol '> :join</ span > < span class ='rparen '> )</ span >
137
137
< span class ='
comment '
> # => [#<Thread:
[email protected] :14 dead>,
138
138
</ span > < span class ='
comment '
> # #<Thread:
[email protected] :14 dead>,
@@ -153,7 +153,7 @@ <h2>Overview</h2><div class="docstring">
153
153
</ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_push '> push</ span > < span class ='label '> message:</ span > < span class ='int '> 3</ span >
154
154
< span class ='comment '> # => #<Concurrent::Promises::Channel:0x000002 capacity taken 0 of 2>
155
155
</ span > < span class ='id identifier rubyid_threads '> threads</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_map '> map</ span > < span class ='lparen '> (</ span > < span class ='op '> &</ span > < span class ='symbol '> :value</ span > < span class ='rparen '> )</ span >
156
- < span class ='comment '> # => [{:message=>1}, {:message=>0 }, {:message=>3}]
156
+ < span class ='comment '> # => [{:message=>1}, {:message=>2 }, {:message=>3}]
157
157
</ span > </ code > </ pre >
158
158
159
159
< h3 > Promises integration</ h3 >
@@ -253,7 +253,7 @@ <h3>Timeouts</h3>
253
253
</ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_push '> push</ span > < span class ='int '> 3</ span > < span class ='comma '> ,</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # => false
254
254
</ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # => 1
255
255
</ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # => 2
256
- </ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # => nil
256
+ </ span > < span class ='id identifier rubyid_ch '> ch</ span > < span class ='period '> .</ span > < span class ='id identifier rubyid_pop '> pop</ span > < span class ='float '> 0.01</ span > < span class ='comment '> # => [true, nil, nil]
257
257
</ span > </ code > </ pre >
258
258
259
259
< h3 > Backpressure</ h3 >
@@ -310,15 +310,15 @@ <h3>Backpressure</h3>
310
310
</ span > < span class ='comment '> # "consumer 0 got 0. payload 0 from producer 0",
311
311
</ span > < span class ='comment '> # "producer 0 pushing 3",
312
312
</ span > < span class ='comment '> # "consumer 2 got 0. payload 1 from producer 0",
313
+ </ span > < span class ='comment '> # "consumer 3 got 0. payload 2 from producer 0",
314
+ </ span > < span class ='comment '> # "consumer 1 got 0. payload 0 from producer 1",
313
315
</ span > < span class ='comment '> # "producer 1 pushing 1",
314
- </ span > < span class ='comment '> # "consumer 1 got 0. payload 2 from producer 0",
315
- </ span > < span class ='comment '> # "consumer 3 got 0. payload 0 from producer 1",
316
316
</ span > < span class ='comment '> # "producer 1 pushing 2",
317
- </ span > < span class ='comment '> # "consumer 0 got 1. payload 3 from producer 0",
318
- </ span > < span class ='comment '> # "consumer 1 got 1. payload 1 from producer 1",
319
- </ span > < span class ='comment '> # "consumer 3 got 1. payload 2 from producer 1",
317
+ </ span > < span class ='comment '> # "consumer 2 got 1. payload 3 from producer 0",
318
+ </ span > < span class ='comment '> # "consumer 3 got 1. payload 1 from producer 1",
319
+ </ span > < span class ='comment '> # "consumer 1 got 1. payload 2 from producer 1",
320
320
</ span > < span class ='comment '> # "producer 1 pushing 3",
321
- </ span > < span class ='comment '> # "consumer 2 got 1. payload 3 from producer 1"]
321
+ </ span > < span class ='comment '> # "consumer 0 got 1. payload 3 from producer 1"]
322
322
</ span > </ code > </ pre >
323
323
324
324
< p > The producers are much faster than consumers
@@ -372,19 +372,19 @@ <h3>Backpressure</h3>
372
372
</ span > < span class ='id identifier rubyid_log '> log</ span >
373
373
< span class ='comment '> # => ["producer 0 pushing 0",
374
374
</ span > < span class ='comment '> # "producer 1 pushing 0",
375
+ </ span > < span class ='comment '> # "consumer 0 got 0. payload 0 from producer 0",
375
376
</ span > < span class ='comment '> # "producer 0 pushing 1",
376
377
</ span > < span class ='comment '> # "producer 1 pushing 1",
377
- </ span > < span class ='comment '> # "consumer 0 got 0. payload 0 from producer 0",
378
- </ span > < span class ='comment '> # "consumer 1 got 0. payload 0 from producer 1",
379
- </ span > < span class ='comment '> # "consumer 2 got 0. payload 1 from producer 0",
378
+ </ span > < span class ='comment '> # "consumer 2 got 0. payload 0 from producer 1",
379
+ </ span > < span class ='comment '> # "consumer 3 got 0. payload 1 from producer 0",
380
380
</ span > < span class ='comment '> # "producer 0 pushing 2",
381
- </ span > < span class ='comment '> # "consumer 3 got 0. payload 1 from producer 1",
382
- </ span > < span class ='comment '> # "producer 1 pushing 2",
383
381
</ span > < span class ='comment '> # "producer 0 pushing 3",
382
+ </ span > < span class ='comment '> # "consumer 1 got 0. payload 1 from producer 1",
383
+ </ span > < span class ='comment '> # "producer 1 pushing 2",
384
384
</ span > < span class ='comment '> # "producer 1 pushing 3",
385
385
</ span > < span class ='comment '> # "consumer 0 got 1. payload 2 from producer 0",
386
- </ span > < span class ='comment '> # "consumer 2 got 1. payload 2 from producer 1",
387
386
</ span > < span class ='comment '> # "consumer 3 got 1. payload 3 from producer 0",
387
+ </ span > < span class ='comment '> # "consumer 2 got 1. payload 2 from producer 1",
388
388
</ span > < span class ='comment '> # "consumer 1 got 1. payload 3 from producer 1"]
389
389
</ span > </ code > </ pre >
390
390
0 commit comments