@@ -90,7 +90,7 @@ static void stdout_hup(struct hyper_event *de, int efd)
9090static void stderr_hup (struct hyper_event * de , int efd )
9191{
9292 struct hyper_exec * exec = container_of (de , struct hyper_exec , stderrev );
93- fprintf (stdout , "%s, seq %" PRIu64 ", id %s\n" , __func__ , exec -> seq , exec -> id );
93+ fprintf (stdout , "%s, seq %" PRIu64 ", id %s\n" , __func__ , exec -> errseq , exec -> id );
9494 return pts_hup (de , efd , exec );
9595}
9696
@@ -181,7 +181,7 @@ static int stderr_loop(struct hyper_event *de, int efd, int events)
181181 struct hyper_exec * exec = container_of (de , struct hyper_exec , stderrev );
182182 fprintf (stdout , "%s, seq %" PRIu64 "\n" , __func__ , exec -> errseq );
183183
184- return pts_loop (de , exec -> errseq ? exec -> errseq : exec -> seq , efd , exec );
184+ return pts_loop (de , exec -> errseq , efd , exec );
185185}
186186
187187struct hyper_event_ops err_ops = {
@@ -455,10 +455,6 @@ static int hyper_setup_stdio_events(struct hyper_exec *exec, struct stdio_config
455455 hyper_setfd_cloexec (io -> stdinevfd );
456456 io -> stdoutevfd = dup (exec -> ptyfd );
457457 hyper_setfd_cloexec (io -> stdoutevfd );
458- if (exec -> errseq == 0 ) {
459- io -> stderrevfd = dup (exec -> ptyfd );
460- hyper_setfd_cloexec (io -> stderrevfd );
461- }
462458 }
463459
464460 fprintf (stdout , "hyper_init_event exec stdin event %p, ops %p, fd %d\n" ,
@@ -481,6 +477,10 @@ static int hyper_setup_stdio_events(struct hyper_exec *exec, struct stdio_config
481477 }
482478 exec -> ref ++ ;
483479
480+ if (exec -> errseq == 0 ) {
481+ return 0 ;
482+ }
483+
484484 fprintf (stdout , "hyper_init_event exec stderr event %p, ops %p, fd %d\n" ,
485485 & exec -> stderrev , & err_ops , io -> stderrevfd );
486486 exec -> stderrev .fd = io -> stderrevfd ;
0 commit comments