fix some non-blocking behavior but it's not right yet; log some signals
[scpubgit/Object-Remote.git] / lib / Object / Remote / ReadChannel.pm
index fb13c80..f6a7cca 100644 (file)
@@ -1,7 +1,7 @@
 package Object::Remote::ReadChannel;
 
 use CPS::Future;
-use Scalar::Util qw(weaken);
+use Scalar::Util qw(weaken openhandle);
 use Object::Remote::Logging qw(:log :dlog);
 use POSIX;
 use Moo;
@@ -33,7 +33,7 @@ sub _receive_data_from {
   Dlog_trace { "Preparing to read data from $_" } $fh;
   my $rb = $self->_receive_data_buffer;
   my $len = sysread($fh, $$rb, 32768, length($$rb));
-  my $err = defined($len) ? '' : ": $!";
+  my $err = defined($len) ? 'eof' : ": $!";
   if (defined($len) and $len > 0) {
     log_trace { "Read $len bytes of data" };
     while (my $cb = $self->on_line_call and $$rb =~ s/^(.*)\n//) {
@@ -58,11 +58,14 @@ sub DEMOLISH {
   my ($self, $gd) = @_;
   return if $gd;
   log_trace { "read channel is being demolished" };
+   
   Object::Remote->current_loop
                 ->unwatch_io(
                     handle => $self->fh,
                     on_read_ready => 1
                   );
+                  
+  
 }
 
 1;