pike.git / lib / modules / Process.pmod

version» Context lines:

pike.git/lib/modules/Process.pmod:223: Inside #if constant(Thread.Thread)
   if (mystdin) {    threads += ({    thread_create(lambda(Stdio.File f) { f->write(stdin_str); }, mystdin )    });    mystdin = 0;    }       exitcode = p->wait();    threads->wait();   #else //No threads, use callbacks +  Pike.SmallBackend backend = Pike.SmallBackend(); +  +  mystdout->set_backend (backend); +  mystderr->set_backend (backend); +     mystdout->set_read_callback( lambda( mixed i, string data) {    gotstdout += data;    } );    mystderr->set_read_callback( lambda( mixed i, string data) {    gotstderr += data;    } );    mystdout->set_close_callback( lambda () {    mystdout->set_read_callback(0);    mystdout = 0;    });    mystderr->set_close_callback( lambda () {    mystderr->set_read_callback(0);    mystderr = 0;    });       if (mystdin) { -  Shuffler.Shuffle sf = Shuffler.Shuffler()->shuffle( mystdin ); +  Shuffler.Shuffler sfr = Shuffler.Shuffler(); +  sfr->set_backend (backend); +  Shuffler.Shuffle sf = sfr->shuffle( mystdin );    sf->add_source(stdin_str);    sf->set_done_callback (lambda () {    mystdin = 0;    });    sf->start();    }       while( mystdout || mystderr || mystdin ) -  Pike.DefaultBackend( 1.0 ); +  backend( 1.0 );       exitcode = p->wait();   #endif       return ([ "stdout" : gotstdout,    "stderr" : gotstderr,    "exitcode": exitcode ]);   }      #if constant(exece)