Branch Coverage

blib/lib/MCE.pm
Criterion Covered Total %
branch 236 770 30.6


line true false branch
27 0 94 if ($^O eq 'MSWin32' and not $INC{'threads.pm'}) { }
0 188 elsif ($INC{'threads.pm'} and not $INC{'threads/shared.pm'}) { }
34 0 94 $INC{'threads.pm'} ? :
35 0 94 $_has_threads ? :
38 94 0 if ($] ge "5.008008" and not $INC{'PDL.pm'})
40 94 0 unless ($@)
43 94 0 if ($_encoder_ver - $_decoder_ver == 0)
50 0 94 if (not defined $_freeze)
112 0 94 $^O eq 'MSWin32' ? :
113 0 94 $^O =~ /mswin|mingw|msys|cygwin/i ? :
120 3 96 unless ref $self
126 70 1 unless ref $self
132 166 42 unless ref $self
163 0 0 if $_arg eq "max_workers"
164 0 0 if $_arg eq "chunk_size"
165 0 0 if $_arg eq "tmp_dir"
166 0 0 if $_arg eq "freeze"
167 0 0 if $_arg eq "thaw"
168 0 0 if $_arg eq "init_relay"
169 0 0 if $_arg eq "use_threads"
171 0 0 if ($_arg eq "export_const" or $_arg eq "const")
172 0 0 if (shift() eq 1)
182 0 0 if ($_arg eq "sereal")
183 0 0 if (shift() eq 0)
194 22 94 if $_imported++
265 0 0 if $INC{'threads.pm'}
269 0 0 if $_is_MSWin32 and $MCE::Signal::KILLED
273 0 0 if $_[0] and $_[0]{'_spawned'} and $_[0]{'_init_pid'} eq "${$}.$_tid" and not $MCE::Signal::KILLED
280 76 18 unless defined $MCE
282 0 18 $MCE::MCE->{'_is_thread'} ? :
283 0 18 if exists $MCE::MCE->{'_wuf'} and $MCE::MCE->{'_pid'} eq $_pid
289 46 45 if $INC{'MCE/Flow.pm'}
290 4 87 if $INC{'MCE/Grep.pm'}
291 5 86 if $INC{'MCE/Loop.pm'}
292 4 87 if $INC{'MCE/Map.pm'}
293 12 79 if $INC{'MCE/Step.pm'}
294 10 81 if $INC{'MCE/Stream.pm'}
311 45 0 unless (exists $_plugin_list{$_ext_module})
319 45 0 if (ref $_ext_output_function eq "HASH")
322 545 0 unless exists $_plugin_function{$_p}
326 45 0 if ref $_ext_output_loop_begin eq "CODE"
328 45 0 if ref $_ext_output_loop_end eq "CODE"
330 35 10 if ref $_ext_worker_init eq "CODE"
359 0 0 if ("MCE"->wid == 0 or not $^S)
376 108 234 exists $self{'pkg'} ? :
390 0 342 if exists $_def->{$_pkg}{'INIT_RELAY'}
393 0 342 if exists $_def->{$_pkg}{'USE_THREADS'}
395 94 248 if (exists $self{'_module_instance'})
408 0 1758 unless exists $_valid_fields_new{$_p}
413 0 248 if (defined $self{'use_threads'}) { }
414 0 0 if (not $_has_threads and $self{'use_threads'})
424 0 248 $_has_threads ? :
427 248 0 unless (exists $self{'posix_exit'})
433 0 248 if $^S or $_tid or $INC{'Mojo/IOLoop.pm'} or $INC{'Coro.pm'} or $INC{'LWP/UserAgent.pm'} or $INC{'stfl.pm'} or $INC{'Curses.pm'} or $INC{'CGI.pm'} or $INC{'FCGI.pm'} or $INC{'Tk.pm'} or $INC{'Wx.pm'} or $INC{'Win32/GUI.pm'} or $INC{'Gearman/Util.pm'} or $INC{'Gearman/XS.pm'}
440 42 206 if (defined $self{'tmp_dir'})
442 0 42 unless -d $self{'tmp_dir'}
444 0 42 unless -w $self{'tmp_dir'}
447 108 140 if (defined $self{'user_tasks'})
449 0 108 unless ref $self{'user_tasks'} eq "ARRAY"
453 0 108 if $self{'user_tasks'}[0]{'init_relay'}
458 0 548 unless exists $_valid_fields_task{$_p}
460 0 164 unless scalar keys %{$_task;}
463 64 100 unless defined $_task->{'max_workers'}
465 164 0 unless defined $_task->{'use_threads'}
486 0 248 if $_is_MSWin32
489 0 248 ref $self{'input_data'} eq 'SCALAR' ? :
492 0 248 $INC{'MCE/Channel.pm'} ? :
248 0 "${$}.$_tid" eq $_oid ? :
497 108 140 if (defined $self{'user_tasks'}) { }
505 200 48 $_total_workers < $_data_channels ? :
508 42 206 $_total_workers > $self{'_data_channels'} ? :
509 0 248 if $INC{'MCE/Child.pm'} or $INC{'MCE/Hobo.pm'}
511 248 0 if ($MCE::MCE->{'_wid'} == 0)
513 248 0 if defined wantarray
526 0 140 unless ref $self
531 0 140 if $self->{'_wid'}
534 0 140 if $self->{'_spawned'} or exists $self->{'_module_instance'}
536 0 140 if $_is_MSWin32
537 0 140 if $_has_threads and $_is_winenv
539 0 0 if $_tid and $MCE::_GMUTEX
540 0 140 if $_tid
544 0 140 if ($INC{'PDL.pm'})
546 0 0 unless $INC{'PDL/IO/Storable.pm'}
552 0 140 if ($INC{'LWP/UserAgent.pm'} and not $INC{'Net/HTTP.pm'})
557 0 140 if $INC{'MCE/Shared.pm'}
560 0 140 if (defined $self->{'sequence'}) { }
54 86 elsif (defined $self->{'input_data'}) { }
562 0 0 unless $INC{'MCE/Core/Input/Sequence.pm'}
566 54 0 if ($_ref =~ /^(?:ARRAY|HASH|GLOB|FileHandle|IO::)/) { }
0 0 elsif ($_ref =~ /^(?:CODE|Iterator::)/) { }
568 43 11 unless $INC{'MCE/Core/Input/Request.pm'}
572 0 0 unless $INC{'MCE/Core/Input/Iterator.pm'}
576 0 0 unless $INC{'MCE/Core/Input/Handle.pm'}
586 140 0 if (not defined $TOP_HDLR && ($TOP_HDLR->{'_mgr_live'} || $TOP_HDLR->{'_wid'})) { }
0 0 elsif (builtin::refaddr($self) != builtin::refaddr($TOP_HDLR)) { }
588 0 0 if ($_is_MSWin32 and defined $TOP_HDLR and $TOP_HDLR->{'_spawned'})
595 0 0 if $self->{'_data_channels'} > 4
596 0 0 if $self->{'_init_total_workers'} > 4
599 0 0 if ($_is_MSWin32 and $ENV{'PERL_MCE_IPC'} ne "win32")
618 0 140 if ($self->{'_lock_chn'})
635 0 140 unless ($^O =~ /linux|android|aix/)
639 24 116 if (defined $self->{'init_relay'})
640 9 15 unless ($INC{'MCE/Relay.pm'})
655 0 140 if ($self->{'loop_timeout'} and not $_is_MSWin32)
659 140 0 unless $_is_MSWin32
661 44 96 if (not defined $self->{'user_tasks'}) { }
664 0 44 if (defined $_use_threads and $_use_threads == 1) { }
691 0 119 if (defined $_tsk_use_threads and $_tsk_use_threads == 1) { }
707 0 57 if (defined $_tsk_use_threads and $_tsk_use_threads == 1) { }
743 0 67 if $MCE::MCE->{'_wid'} == 0 and builtin::refaddr($MCE) != builtin::refaddr($self)
745 0 0 if $_tid and $MCE::_GMUTEX
757 0 106 unless ref $self
763 6 100 if (ref $_[0] eq 'HASH' and ref $_[1] eq 'HASH') { }
95 5 elsif (ref $_[0] eq 'HASH') { }
774 106 0 if (defined $_input_data) { }
0 0 elsif (not defined $_params_ref->{'input_data'} || defined $_params_ref->{'sequence'}) { }
790 0 0 unless defined $MCE::MCE->{'init_relay'}
802 0 0 unless ref $self
806 0 0 if ($_fcn eq 'forchunk') { }
0 0 elsif ($_fcn eq 'foreach') { }
0 0 elsif ($_fcn eq 'forseq') { }
807 0 0 unless $INC{'MCE/Candy.pm'}
811 0 0 unless $INC{'MCE/Candy.pm'}
815 0 0 unless $INC{'MCE/Candy.pm'}
821 0 0 if ($_fcn eq 'relay_lock' or $_fcn eq 'relay_recv') { }
0 0 elsif ($_fcn eq 'relay_final') { }
823 0 0 unless defined $MCE::MCE->{'init_relay'}
831 0 0 if ($_fcn eq 'last') { }
0 0 elsif ($_fcn eq 'next') { }
0 0 elsif ($_fcn eq 'pid') { }
0 0 elsif ($_fcn eq 'status') { }
833 0 0 unless $self->{'_wid'}
835 0 0 if defined $self->{'_last_jmp'}
844 0 0 unless $self->{'_wid'}
846 0 0 if defined $self->{'_next_jmp'}
854 0 0 if (defined $self->{'_pid'}) { }
0 0 elsif ($_has_threads and $self->{'use_threads'}) { }
867 0 0 if $self->{'_wid'}
869 0 0 defined $self->{'_wrk_status'} ? :
882 0 0 unless ref $self
887 0 0 if $self->{'_wid'}
900 0 0 defined $_task_id ? :
902 0 0 if defined $_task_id
903 0 0 if defined $_task_id
908 0 0 if (defined $_use_threads and $_use_threads == 1) { }
916 0 0 if (defined $self->{'spawn_delay'} and $self->{'spawn_delay'} > 0.0) { }
0 0 elsif ($_tid or $_is_MSWin32) { }
932 0 221 unless ref $self
935 0 221 if $self->{'_wid'}
939 86 135 if (ref $_[0] eq 'HASH') { }
940 86 0 defined $_[1] ? :
943 106 29 defined $_[0] ? :
949 159 62 defined $self->{'user_tasks'} ? :
955 0 221 if $self->{'_send_cnt'}
957 96 0 unless (defined $self->{'user_func'} or defined $_params_ref->{'user_func'})
966 192 29 if (defined $_params_ref and ref $_params_ref eq "HASH")
970 159 62 if ($_has_user_tasks)
972 0 159 if $self->{'user_tasks'}[0]{'input_data'}
974 0 159 if $self->{'user_tasks'}[0]{'use_slurpio'}
976 0 159 if $self->{'user_tasks'}[0]{'parallel_io'}
978 0 159 if $self->{'user_tasks'}[0]{'RS'}
980 0 221 if (ref $self->{'input_data'} eq "SCALAR")
981 0 0 if (builtin::refaddr($self->{'input_data'}) != $self->{'_last_sref'})
987 0 221 if $_requires_shutdown
994 140 81 unless $self->{'_spawned'}
995 0 148 unless $self->{'_total_workers'}
1000 0 148 if $MCE::MCE->{'_wid'} == 0 and builtin::refaddr($MCE) != builtin::refaddr($self)
1008 0 148 $_has_user_tasks && $self->{'user_tasks'}[0]{'sequence'} ? :
1011 18 130 if (defined $_seq) { }
84 46 elsif (defined $self->{'input_data'}) { }
1013 18 0 ref $_seq eq 'ARRAY' ? :
1016 0 14 if $_has_user_tasks and $self->{'user_tasks'}[0]{'chunk_size'}
1028 18 0 if ($_step > 0) { }
1029 18 0 if $_abort_msg * $_chunk_size * abs($_step) + $_begin <= $_end
1032 0 0 if $_abort_msg * $_chunk_size * abs($_step) + $_end <= $_begin
1041 18 66 if ($_ref eq '') { }
45 21 elsif ($_ref eq 'ARRAY') { }
3 18 elsif ($_ref eq 'HASH') { }
18 0 elsif ($_ref =~ /^(?:GLOB|FileHandle|IO::)/) { }
0 0 elsif ($_ref =~ /^(?:CODE|Iterator::)/) { }
0 0 elsif ($_ref eq 'SCALAR') { }
1048 0 18 if (-s $_input_file == 0)
1049 0 0 if $_auto_shutdown == 1
1057 45 0 if ref $_input_data->[0] eq ""
1061 0 45 if (@{$_input_data;} == 0)
1062 0 0 if $_auto_shutdown == 1
1073 0 3 if (scalar keys %{$_input_data;} == 0)
1074 0 0 if $_auto_shutdown == 1
1098 0 0 if (length ${$self->{'input_data'};} == 0)
1099 0 0 if $_auto_shutdown == 1
1115 0 148 if ($_send_cnt) { }
1137 0 148 $self->{'progress'} ? :
1142 109 39 if ($_has_user_tasks)
1153 205 146 unless $self->{'_state'}[$_i]{'_task_id'}
1160 102 46 if (defined $_first_msg)
1168 306 146 if (not $_has_user_tasks or exists $_task0_wids{$_wid}) { }
1176 0 452 if defined $_submit_delay and $_submit_delay > 0
1186 148 0 if ($self->{'_total_running'} > 0)
1191 0 148 if $_is_MSWin32
1193 148 0 unless ($_send_cnt)
1195 0 148 if ($_is_MSWin32) { }
1214 102 46 if (not $_send_cnt and $_run_mode ne "nodata")
1216 102 0 if defined $self->{'_que_r_sock'}
1222 15 133 if ($_auto_shutdown or $self->{'_total_exited'}) { }
0 133 elsif ($INC{'MCE/Simple.pm'}) { }
0 133 elsif ($^S or $ENV{'PERL_IPERL_RUNNING'}) { }
1229 0 0 unless ($INC{'Mojo/IOLoop.pm'} or $INC{'Win32/GUI.pm'} or $INC{'Gearman/XS.pm'} or $INC{'Gearman/Util.pm'} or $INC{'Tk.pm'} or $INC{'Wx.pm'})
1237 0 0 if ($_t =~ /^(?:[^\n]+\n){1,7}\teval / or $_t =~ /\n\teval [^\n]+\n\t(?:eval|Try)/ or $_t =~ /\n\tMCE::_dispatch\(\) [^\n]+ thread \d+\n$/ or $_tid and not $self->{'use_threads'})
1257 0 0 unless ref $self
1260 0 0 if $self->{'_wid'}
1262 0 0 if $self->{'_total_running'}
1265 0 0 if defined $self->{'input_data'} or defined $self->{'sequence'}
1267 0 0 if defined $self->{'user_tasks'}
1271 0 0 if (ref $_[0] eq 'ARRAY' or ref $_[0] eq 'HASH' or ref $_[0] eq 'PDL') { }
1279 0 0 unless defined $self->{'_send_cnt'}
1284 0 0 unless $self->{'_spawned'}
1287 0 0 if $self->{'_send_cnt'} >= $self->{'_task'}[0]{'_total_workers'}
1306 0 0 if defined $_submit_delay and $_submit_delay > 0
1319 0 67 unless ref $self
1325 0 67 unless $self->{'_spawned'}
1328 0 67 if ($MCE::Signal::KILLED)
1329 0 0 if (defined $self->{'_sess_dir'})
1331 0 0 if -d $_sess_dir
1339 0 67 if $self->{'_send_cnt'}
1349 67 0 if (defined $TOP_HDLR and builtin::refaddr($self) == builtin::refaddr($TOP_HDLR))
1355 0 0 if $_has_threads and $_is_winenv and not $_no_lock
1365 67 0 if (@{$self->{'_pids'};} > 0)
1368 170 67 if $_list->[$i]
1371 0 67 if (@{$self->{'_thrs'};} > 0)
1374 0 0 if $_list->[$i]
1393 0 67 if defined $_sess_dir and -d $_sess_dir
1404 0 67 if ($self->{'loop_timeout'})
1419 0 0 unless ref $self
1421 0 0 unless $self->{'_wid'}
1426 0 0 if $self->{'_task_id'} > 0
1434 0 0 if defined $\
1440 0 0 if $_is_MSWin32
1447 0 0 if $_is_MSWin32
1454 0 0 unless ref $self
1456 0 0 unless $self->{'_wid'}
1465 0 0 if defined $\
1466 0 0 if not $/ or $/ ne $MCE::LF
1468 0 0 if $_lock_chn
1472 0 0 if $_lock_chn
1486 0 0 unless ref $self
1492 0 0 if (defined $_abort_msg)
1495 0 0 if ($_abort_msg > 0)
1500 0 0 if ($self->{'_wid'} > 0)
1507 0 0 if $_lock_chn
1509 0 0 if $_lock_chn
1519 0 0 unless ref $self
1521 0 0 defined $_[0] ? :
1522 0 0 defined $_[1] ? :
1523 0 0 defined $_[2] ? :
1528 0 0 unless $self->{'_wid'}
1537 0 0 unless ($self->{'_exiting'})
1540 0 0 $self->{'_is_thread'} ? :
1544 0 0 if (defined $self->{'init_relay'} and not $self->{'_relayed'} and not $_task_id and exists $self->{'_wuf'} and $self->{'_pid'} eq $_pid)
1547 0 0 unless defined $self->{'_retry_cnt'}
1549 0 0 if (not $_max_retries or ++$self->{'_retry_cnt'} == $_max_retries)
1550 0 0 if $_chunk_id
1555 0 0 if $INC{'MCE/Child.pm'}
1558 0 0 if $INC{'MCE/Hobo.pm'} and "MCE::Hobo"->can("_clear")
1560 0 0 if defined $\
1564 0 0 if $_lock_chn
1566 0 0 if ($self->{'_retry'} and $self->{'_retry'}[2]--) { }
1584 0 0 if $_lock_chn
1593 0 0 unless ref $self
1594 0 0 if defined $self->{'_sess_dir'}
1596 0 0 if ($self->{'_wid'} == 0) { }
1597 0 0 $self->{'_spawned'} ? :
1607 0 0 if defined $\
1608 0 0 if not $/ or $/ ne $MCE::LF
1610 0 0 if $_lock_chn
1613 0 0 if $_lock_chn
1622 31 0 unless ref $self
1623 0 31 if defined $self->{'tmp_dir'}
1625 31 0 if ($self->{'_wid'} == 0) { }
1636 0 0 if defined $\
1637 0 0 if not $/ or $/ ne $MCE::LF
1639 0 0 if $_lock_chn
1642 0 0 if $_lock_chn
1657 130 3 unless ref $self
1658 0 133 caller() eq 'MCE' ? :
1660 0 133 if ref $_[0] eq "CODE"
1662 0 133 unless defined(my $_func = shift())
1665 133 0 if (index($_func, ":") == -1)
1667 133 0 if ($self->{'_wid'}) { }
1679 365 0 unless ref $self
1682 0 365 unless $self->{'_wid'}
1700 0 0 unless ref $self
1704 0 0 unless $self->{'_wid'}
1706 0 0 unless defined $_[0]
1709 0 0 exists $_sendto_lkup{lc $_to} ? :
1712 0 0 unless (defined $_dest)
1715 0 0 if (ref $_to and defined($_fd = fileno $_to) || defined($_fd = eval {
0 0 elsif (builtin::reftype($_to) eq 'GLOB') { }
1718 0 0 if (my $_ob = tied *{$_to;})
1719 0 0 if (ref $_ob eq "IO::TieCombine::Handle")
1720 0 0 if lc $_ob->{'slot_name'} eq "stdout"
1721 0 0 if lc $_ob->{'slot_name'} eq "stderr"
1725 0 0 scalar @_ == 1 ? :
1732 0 0 if (defined $_to and $_to =~ /$_v2_regx/o)
1734 0 0 exists $_sendto_lkup{lc $1} ? :
1738 0 0 if (not defined $_dest or not defined $_value and $_dest == 1 || $_dest == 4)
1755 0 0 if ($_dest == 0)
1756 0 0 if not defined $_[1] or @_ > 2
1772 0 0 unless ref $self
1775 0 0 if (ref $_[0] and defined($_fd = fileno $_[0]) || defined($_fd = eval {
0 0 elsif (builtin::reftype($_[0]) eq 'GLOB') { }
1778 0 0 if (my $_ob = tied *{$_[0];})
1779 0 0 if (ref $_ob eq "IO::TieCombine::Handle")
1780 0 0 if lc $_ob->{'slot_name'} eq "stdout"
1781 0 0 if lc $_ob->{'slot_name'} eq "stderr"
1791 0 0 scalar @_ ? :
1793 0 0 if $_fd
1794 0 0 if $self->{'_wid'}
1799 0 0 unless ref $self
1802 0 0 if (ref $_[0] and defined($_fd = fileno $_[0]) || defined($_fd = eval {
0 0 elsif (builtin::reftype($_[0]) eq 'GLOB') { }
1805 0 0 if (my $_ob = tied *{$_[0];})
1806 0 0 if (ref $_ob eq "IO::TieCombine::Handle")
1807 0 0 if lc $_ob->{'slot_name'} eq "stdout"
1808 0 0 if lc $_ob->{'slot_name'} eq "stderr"
1819 0 0 scalar @_ ? :
1821 0 0 if $_fd
1822 0 0 if $self->{'_wid'}
1827 0 0 unless ref $self
1830 0 0 if (ref $_[0] and defined($_fd = fileno $_[0]) || defined($_fd = eval {
0 0 elsif (builtin::reftype($_[0]) eq 'GLOB') { }
1833 0 0 if (my $_ob = tied *{$_[0];})
1834 0 0 if (ref $_ob eq "IO::TieCombine::Handle")
1835 0 0 if lc $_ob->{'slot_name'} eq "stdout"
1836 0 0 if lc $_ob->{'slot_name'} eq "stderr"
1846 0 0 scalar @_ ? :
1848 0 0 if $_fd
1849 0 0 if $self->{'_wid'}
1861 0 73 exists $self->{'_guard'} && $self->{'_guard'}[0] ? :
1863 0 73 if $_has_guard
1867 73 0 unless $_tid
1870 0 73 if $self->{'use_threads'}
1872 73 0 unless ($_tid)
1876 0 0 if $_[0] eq 'INT' || $_[0] eq 'TERM' and $^O ne "MSWin32"
1883 0 0 if ($self->{'posix_exit'} and not $_has_guard and not $_is_MSWin32)
1885 0 0 if $INC{'POSIX.pm'}
1893 0 140 unless ref $self
1895 96 44 if (defined $self->{'user_tasks'})
1896 96 0 if (defined $self->{'user_tasks'}[0]{'max_workers'})
1905 0 0 unless ref $self
1909 0 0 unless (defined $_sess_dir)
1911 0 0 unless defined $self->{'tmp_dir'}
1913 0 0 $INC{'threads.pm'} ? :
1914 0 0 unless defined $self->{'_mce_tid'}
1919 0 0 if not defined $_tmp_dir or $_tmp_dir eq ""
1921 0 0 unless -d $_tmp_dir
1923 0 0 unless -w $_tmp_dir
1951 0 5 if (length $_chop_str) { }
1972 0 192 if (defined $_params_ref->{'init_relay'} and not defined $self->{'init_relay'})
1976 0 576 if (defined $_params_ref->{$_p})
1983 0 316 unless exists $_params_allowed_args{$_p}
1988 81 111 $self->{'_spawned'} ? :
2007 0 0 if $_is_MSWin32 and defined $self->{'max_retries'} || $INC{'MCE/Child.pm'} || $INC{'MCE/Hobo.pm'}
2013 0 73 $_is_thread ? :
2015 73 0 unless ($self->{'use_threads'})
2016 0 73 if $INC{'MCE/Child.pm'}
2017 0 73 if $INC{'MCE/Hobo.pm'}
2034 73 0 if not $self->{'use_threads'} or $] ge "5.020000"
2035 0 73 if $INC{'Math/Prime/Util.pm'}
2039 73 0 unless ($self->{'use_threads'})
2040 0 73 if $INC{'PDL.pm'} and "PDL"->can("srand")
2041 0 73 if $INC{'PDL.pm'} and "PDL"->can("srandom")
2045 0 73 if (not $self->{'use_threads'} and $INC{'Math/Random.pm'})
2048 0 0 $_cur_seed < 1073741781 ? :
2055 0 73 if ($INC{'Math/Random/MT/Auto.pm'})
2059 0 0 $_cur_seed < 1073741781 ? :
2082 0 0 unless defined $_thr
2086 0 0 if (defined $_params)
2087 0 0 unless (defined $self->{'_tids'}[$_i])
2098 0 0 if defined $self->{'spawn_delay'} and $self->{'spawn_delay'} > 0
2109 0 321 unless defined $_pid
2112 73 248 if $_pid == 0
2116 0 248 if (defined $_params)
2117 0 0 unless (defined $self->{'_pids'}[$_i])
2125 0 248 if ($self->{'loop_timeout'} and not $_is_MSWin32)
2131 0 248 if defined $self->{'spawn_delay'} and $self->{'spawn_delay'} > 0