IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 19, 2009, 3:43:13 PM (17 years ago)
Author:
jhoblitt
Message:

current working version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/scripts/ptest.pl

    r13053 r21545  
    77
    88use Nebulous::Client;
     9use IO::Select;
     10use IO::Socket;
    911
    1012my $neb = Nebulous::Client->new(
    11     proxy   => 'http://localhost:80/nebulous'
     13#    proxy   => 'http://localhost:80/nebulous'
     14    proxy   => 'http://alala:80/nebulous'
    1215);
    1316
     
    1518my $kids = shift || 1;
    1619
     20my $s = IO::Select->new();
     21
    1722foreach my $id ( 1..$kids ) {
     23    my ($sock_parent, $sock_child) = IO::Socket->socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC);
     24    $s->add($sock_parent);
     25
    1826    my $pid = fork;
    1927
    2028    unless ( $pid )  {
    21         my $fname = "${key}_$id";
    22         my $fh = $neb->open_create( $fname );
    23         die "can't create file $fname" unless $fh;
     29        child($sock_child, $id);
     30        exit 0;
     31    }
     32    # parent
     33}
    2434
    25         print $fh "fooby\n";
    26 
    27         close $fh;
    28 
    29         $fh = $neb->open( $fname, 'read' ) or die "can't open file";
    30         close $fh;
    31 
    32         $neb->lock( $fname, 'read' );
    33         $neb->unlock( $fname, 'read' );
    34         $neb->replicate( $fname );
    35         $neb->cull( $fname );
    36         $neb->find( $fname );
    37         $neb->copy( $fname, $fname . "_copy" );
    38         $neb->move( $fname, $fname . "_move" );
    39         $neb->delete( $fname . "_copy" );
    40         $neb->delete( $fname . "_move" );
    41 
    42         exit 0;
     35while ($kids) {
     36    foreach my $child ($s->can_read(1)) {
     37        my $string = <$child>;
     38        my @events = split(/\n/, $string) if $string;
     39        print join("\n", @events), "\n" if scalar @events;
    4340    }
    4441}
    4542
    46 while ( $kids ) {
    47     wait();
    48     $kids --;
     43#while ( $kids ) {
     44#    wait();
     45#    $kids --;
     46#}
     47
     48our $my_sock;
     49
     50sub child
     51{
     52    my ($sock_child, $id) = @_;
     53
     54    $my_sock = $sock_child;
     55
     56    # child
     57    my $fname = "${key}_$id";
     58    print $sock_child "$$ : i'm a little tea pot using key: $fname\n";
     59    my $fh = $neb->open_create( $fname );
     60    child_die("can't create file $fname") unless $fh;
     61
     62    print $fh "fooby\n";
     63
     64    close $fh;
     65
     66    $fh = $neb->open( $fname, 'read' ) or child_die("can't open file");
     67    close $fh;
     68
     69    $neb->lock( $fname, 'read' );
     70    $neb->unlock( $fname, 'read' );
     71    $neb->replicate( $fname );
     72    $neb->cull( $fname );
     73
     74    print $sock_child "$$ : half way\n";
     75
     76    $neb->find( $fname );
     77    $neb->copy( $fname, $fname . "_copy" );
     78    $neb->move( $fname, $fname . "_move" );
     79    $neb->delete( $fname . "_copy" );
     80    $neb->delete( $fname . "_move" );
     81
     82    print $sock_child "$$ : all done!\n";
     83
     84    $sock_child->flush;
     85    sleep 10;
     86
     87    return 1;
    4988}
     89
     90sub child_die
     91{
     92    print $my_sock $@;
     93    shutdown($my_sock, 2);
     94    exit 1;
     95}
Note: See TracChangeset for help on using the changeset viewer.