@@ -342,6 +342,12 @@ def cpus
342342 result . should == [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ]
343343 end
344344
345+ it "does not dump/load when running with 0 using #{ type } " do
346+ p = -> { 1 }
347+ result = Parallel . map ( [ 1 , 2 ] , "in_#{ type } " : 0 ) { p }
348+ result . first . call . should == 1
349+ end
350+
345351 it "can call finish hook in order #{ type } " do
346352 out = `METHOD=map WORKER_TYPE=#{ type } ruby spec/cases/finish_in_order.rb 2>&1`
347353 without_ractor_warning ( out ) . should == <<~OUT
@@ -352,70 +358,25 @@ def cpus
352358 finish 4 4 "F4"
353359 OUT
354360 end
355- end
356-
357- it "notifies when an item of work is dispatched to a worker process" do
358- monitor = double ( 'monitor' , call : nil )
359- monitor . should_receive ( :call ) . once . with ( :first , 0 )
360- monitor . should_receive ( :call ) . once . with ( :second , 1 )
361- monitor . should_receive ( :call ) . once . with ( :third , 2 )
362- Parallel . map ( [ :first , :second , :third ] , start : monitor , in_processes : 3 ) { }
363- end
364-
365- it "notifies when an item of work is dispatched with 0 processes" do
366- monitor = double ( 'monitor' , call : nil )
367- monitor . should_receive ( :call ) . once . with ( :first , 0 )
368- monitor . should_receive ( :call ) . once . with ( :second , 1 )
369- monitor . should_receive ( :call ) . once . with ( :third , 2 )
370- Parallel . map ( [ :first , :second , :third ] , start : monitor , in_processes : 0 ) { }
371- end
372-
373- it "notifies when an item of work is completed by a worker process" do
374- monitor = double ( 'monitor' , call : nil )
375- monitor . should_receive ( :call ) . once . with ( :first , 0 , 123 )
376- monitor . should_receive ( :call ) . once . with ( :second , 1 , 123 )
377- monitor . should_receive ( :call ) . once . with ( :third , 2 , 123 )
378- Parallel . map ( [ :first , :second , :third ] , finish : monitor , in_processes : 3 ) { 123 }
379- end
380361
381- it "notifies when an item of work is completed with 0 processes" do
382- monitor = double ( 'monitor' , call : nil )
383- monitor . should_receive ( :call ) . once . with ( :first , 0 , 123 )
384- monitor . should_receive ( :call ) . once . with ( :second , 1 , 123 )
385- monitor . should_receive ( :call ) . once . with ( :third , 2 , 123 )
386- Parallel . map ( [ :first , :second , :third ] , finish : monitor , in_processes : 0 ) { 123 }
387- end
388-
389- it "notifies when an item of work is dispatched to a threaded worker" do
390- monitor = double ( 'monitor' , call : nil )
391- monitor . should_receive ( :call ) . once . with ( :first , 0 )
392- monitor . should_receive ( :call ) . once . with ( :second , 1 )
393- monitor . should_receive ( :call ) . once . with ( :third , 2 )
394- Parallel . map ( [ :first , :second , :third ] , start : monitor , in_threads : 3 ) { }
395- end
396-
397- it "notifies when an item of work is dispatched with 0 threads" do
398- monitor = double ( 'monitor' , call : nil )
399- monitor . should_receive ( :call ) . once . with ( :first , 0 )
400- monitor . should_receive ( :call ) . once . with ( :second , 1 )
401- monitor . should_receive ( :call ) . once . with ( :third , 2 )
402- Parallel . map ( [ :first , :second , :third ] , start : monitor , in_threads : 0 ) { }
403- end
404-
405- it "notifies when an item of work is completed by a threaded worker" do
406- monitor = double ( 'monitor' , call : nil )
407- monitor . should_receive ( :call ) . once . with ( :first , 0 , 123 )
408- monitor . should_receive ( :call ) . once . with ( :second , 1 , 123 )
409- monitor . should_receive ( :call ) . once . with ( :third , 2 , 123 )
410- Parallel . map ( [ :first , :second , :third ] , finish : monitor , in_threads : 3 ) { 123 }
411- end
362+ [ 0 , 3 ] . each do |count |
363+ it "notifies when an item of work is dispatched to #{ count } worker using #{ type } " do
364+ skip if type == "ractors" # TODO: why does this fail ?
365+ monitor = double ( 'monitor' , call : nil )
366+ monitor . should_receive ( :call ) . once . with ( :first , 0 )
367+ monitor . should_receive ( :call ) . once . with ( :second , 1 )
368+ monitor . should_receive ( :call ) . once . with ( :third , 2 )
369+ Parallel . map ( [ :first , :second , :third ] , start : monitor , "in_#{ type } " : 3 ) { }
370+ end
412371
413- it "notifies when an item of work is completed with 0 threads" do
414- monitor = double ( 'monitor' , call : nil )
415- monitor . should_receive ( :call ) . once . with ( :first , 0 , 123 )
416- monitor . should_receive ( :call ) . once . with ( :second , 1 , 123 )
417- monitor . should_receive ( :call ) . once . with ( :third , 2 , 123 )
418- Parallel . map ( [ :first , :second , :third ] , finish : monitor , in_threads : 0 ) { 123 }
372+ it "notifies when an item of work is completed by #{ count } worker using #{ type } " do
373+ monitor = double ( 'monitor' , call : nil )
374+ monitor . should_receive ( :call ) . once . with ( :first , 0 , 123 )
375+ monitor . should_receive ( :call ) . once . with ( :second , 1 , 123 )
376+ monitor . should_receive ( :call ) . once . with ( :third , 2 , 123 )
377+ Parallel . map ( [ :first , :second , :third ] , finish : monitor , in_processes : count ) { 123 }
378+ end
379+ end
419380 end
420381
421382 it "spits out a useful error when a worker dies before read" do
0 commit comments