Changeset 9658


Ignore:
Timestamp:
12/13/09 03:01:18 (2 years ago)
Author:
szabgab
Message:

try to make sure there is no infinite loop in the _get process, add logger

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Debug-Client/lib/Debug/Client.pm

    r5298 r9658  
    232232} 
    233233 
     234# TODO shall we add a timeout and/or a number to count down the number 
     235# sysread calls that return 0 before deciding it is really done 
    234236sub _get { 
    235237    my ($self) = @_; 
     
    237239    #my $remote_host = gethostbyaddr($sock->sockaddr(), AF_INET) || 'remote'; 
    238240    my $buf = ''; 
    239     $self->{new_sock}->sysread($buf, 1024, length $buf) while $buf !~ /DB<\d+>/; 
     241    while ($buf !~ /DB<\d+>/) { 
     242        my $ret = $self->{new_sock}->sysread($buf, 1024, length $buf); 
     243        if (not defined $ret) { 
     244            die $!; # TODO better error handling? 
     245        } 
     246        logger("---- ret '$ret'\n$buf\n---"); 
     247        if (not $ret) { 
     248            last; 
     249        } 
     250    } 
     251    logger("_get done"); 
    240252 
    241253    $self->{buffer} = $buf; 
     
    297309} 
    298310 
     311sub logger { 
     312    print "$_[0]\n" if $ENV{DEBUG_LOGGER}; 
     313} 
     314 
     315 
    299316=head1 See Also 
    300317 
Note: See TracChangeset for help on using the changeset viewer.