ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/AnyEvent-Fork/Fork.pm
(Generate patch)

Comparing cvsroot/AnyEvent-Fork/Fork.pm (file contents):
Revision 1.1 by root, Sun Mar 31 03:21:27 2013 UTC vs.
Revision 1.2 by root, Sun Mar 31 03:26:50 2013 UTC

132 my ($queue, $cmd) = @_; 132 my ($queue, $cmd) = @_;
133 133
134 push @{ $queue->[2] }, pack "N/a", $cmd; 134 push @{ $queue->[2] }, pack "N/a", $cmd;
135 135
136 $queue->[3] ||= AE::io $queue->[1], 1, sub { 136 $queue->[3] ||= AE::io $queue->[1], 1, sub {
137 warn "oopl0 ", scalar @{ $queue->[2] };
138 if (ref $queue->[2][0]) { 137 if (ref $queue->[2][0]) {
139 warn "oopla2\n";#d#
140 AnyEvent::ProcessPool::Util::fd_send fileno $queue->[1], fileno ${ $queue->[2][0] } 138 AnyEvent::ProcessPool::Util::fd_send fileno $queue->[1], fileno ${ $queue->[2][0] }
141 and shift @{ $queue->[2] }; 139 and shift @{ $queue->[2] };
142 } else { 140 } else {
143 warn "write ", length $queue->[2][0];#d#
144 my $len = syswrite $queue->[1], $queue->[2][0] 141 my $len = syswrite $queue->[1], $queue->[2][0]
145 or die "AnyEvent::ProcessPool::queue write failure: $!"; 142 or do { undef $queue->[3]; die "AnyEvent::ProcessPool::queue write failure: $!" };
146 substr $queue->[2][0], 0, $len, ""; 143 substr $queue->[2][0], 0, $len, "";
147 shift @{ $queue->[2] } unless length $queue->[2][0]; 144 shift @{ $queue->[2] } unless length $queue->[2][0];
148 } 145 }
149 146
150 undef $queue->[3] unless @{ $queue->[2] }; 147 undef $queue->[3] unless @{ $queue->[2] };
151 warn "oopl3 ", scalar @{ $queue->[2] };
152 warn "oopl4 $queue->[3]\n";#d#
153 }; 148 };
154} 149}
155 150
156sub run_template { 151sub run_template {
157 return if $template; 152 return if $template;
177 172
178 queue_cmd $template, "Iabc"; 173 queue_cmd $template, "Iabc";
179 push @{ $template->[2] }, \$b; 174 push @{ $template->[2] }, \$b;
180 175
181 use Coro::AnyEvent; Coro::AnyEvent::sleep 1; 176 use Coro::AnyEvent; Coro::AnyEvent::sleep 1;
177 undef $b;
178 die "x" . <$a>;
182} 179}
183 180
184sub new { 181sub new {
185 my $class = shift; 182 my $class = shift;
186 183

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines