Commit c020a6eb authored by jan.koester's avatar jan.koester
Browse files

test

parent 72112774
Loading
Loading
Loading
Loading
+0 −17
Changes for src/shell.cpp: 0 added lines, 17 removed lines.
Original line number Diff line number Diff line
@@ -3018,10 +3018,6 @@ void fresh::Shell::runStageChild(const std::vector<std::string> &tokens,const Re
                                  const std::string &subshellBody,
                                  int pipeStdinFd,int pipeStdoutFd,
                                  const std::vector<int> &allPipeFds){
    fprintf(stderr,"DEBUGPIPE CHILD pid=%d pipeStdinFd=%d pipeStdoutFd=%d subshell=%s tokens0=%s\n",
        (int)getpid(),pipeStdinFd,pipeStdoutFd,subshellBody.empty()?"no":"yes",
        tokens.empty()?"":tokens[0].c_str());
    fflush(stderr);
    for(size_t k=0; k<allPipeFds.size(); ++k){
        if(allPipeFds[k]!=pipeStdinFd && allPipeFds[k]!=pipeStdoutFd)
            close(allPipeFds[k]);
@@ -3030,8 +3026,6 @@ void fresh::Shell::runStageChild(const std::vector<std::string> &tokens,const Re
    if(pipeStdinFd>=0){
        dup2(pipeStdinFd,0);
        close(pipeStdinFd);
        fprintf(stderr,"DEBUGPIPE CHILD pid=%d did dup2 stdin\n",(int)getpid());
        fflush(stderr);
    }
    if(pipeStdoutFd>=0){
        dup2(pipeStdoutFd,1);
@@ -3165,8 +3159,6 @@ int fresh::Shell::runPipeline(const std::vector<std::vector<std::string> > &stag
                               const std::vector<Redirection> &redirs,
                               const std::vector<std::string> &subshellBodies){
    size_t n=stages.size();
    fprintf(stderr,"DEBUGPIPE pid=%d n=%zu stage0=%s\n",(int)getpid(),n,stages.empty()?"":stages[0].empty()?"":stages[0][0].c_str());
    fflush(stderr);
    std::vector<int> pipefds((n>1) ? (n-1)*2 : 0);

    for(size_t i=0; i<pipefds.size()/2; ++i){
@@ -3177,21 +3169,12 @@ int fresh::Shell::runPipeline(const std::vector<std::vector<std::string> > &stag
            return 1;
        }
    }
    fprintf(stderr,"DEBUGPIPE pid=%d pipefds=",(int)getpid());
    for(size_t k=0;k<pipefds.size();++k) fprintf(stderr,"%d,",pipefds[k]);
    fprintf(stderr,"\n");
    fflush(stderr);

    std::vector<pid_t> pids(n,-1);

    for(size_t i=0; i<n; ++i){
        int stdinFd=(i>0) ? pipefds[(i-1)*2] : -1;
        int stdoutFd=(i<n-1) ? pipefds[i*2+1] : -1;
        fprintf(stderr,"DEBUGPIPE pid=%d stage=%zu stdinFd=%d stdoutFd=%d cmd0=%s subshell=%s\n",
            (int)getpid(),i,stdinFd,stdoutFd,
            stages[i].empty()?"":stages[i][0].c_str(),
            subshellBodies[i].empty()?"no":"yes");
        fflush(stderr);

        // Must flush before every fork() here: fork() copies whatever is
        // still sitting unflushed in our own stdout/stderr buffers, and a