Diff for /libaitio/src/exec.c between versions 1.1.2.19 and 1.1.2.21

version 1.1.2.19, 2013/12/12 21:59:01 version 1.1.2.21, 2013/12/12 23:36:31
Line 254  io_progOpen(prog_t * __restrict prg, u_int execNum) Line 254  io_progOpen(prog_t * __restrict prg, u_int execNum)
         pthread_mutex_lock(&prg->prog_mtx);          pthread_mutex_lock(&prg->prog_mtx);
         for (i = 0; (execNum ? ret < execNum : 42) && i < array_Size(prg->prog_fds); i++)          for (i = 0; (execNum ? ret < execNum : 42) && i < array_Size(prg->prog_fds); i++)
                 if (!array_Get(prg->prog_fds, i)) {                  if (!array_Get(prg->prog_fds, i)) {
                         printf("%d) %s!!! %d ret=%d\n", i, __func__, execNum, ret);  
                         f = e_popen(prg->prog_name, "r+", &pid);                          f = e_popen(prg->prog_name, "r+", &pid);
 #ifdef POPEN_STREAM  #ifdef POPEN_STREAM
                         if (!f) {                          if (!f) {
Line 384  io_progCheck(prog_t * __restrict prg, int re) Line 383  io_progCheck(prog_t * __restrict prg, int re)
 #else  #else
                                 (p = pio_pgetpid((int) array(prg->prog_fds, i, intptr_t))))                                  (p = pio_pgetpid((int) array(prg->prog_fds, i, intptr_t))))
 #endif  #endif
                        if (waitpid(p->pid, &p->stat, WNOHANG) > 0) {                        if (waitpid(p->pid, &p->stat, WNOHANG)) {
                                 clrbit(prg->prog_used, i);                                  clrbit(prg->prog_used, i);
 #ifdef POPEN_STREAM  #ifdef POPEN_STREAM
                                 e_pclose(array(prg->prog_fds, i, FILE*));                                  e_pclose(array(prg->prog_fds, i, FILE*));
Line 445  io_progAttach(prog_t * __restrict prg, int newOne) Line 444  io_progAttach(prog_t * __restrict prg, int newOne)
                 }                  }
         pthread_mutex_unlock(&prg->prog_mtx);          pthread_mutex_unlock(&prg->prog_mtx);
   
        /* not found free program */        /* execute new one program */
        if (!f && (i = io_progOpen2(prg)) > 0) {        if (newOne) {
                 if (f)
                         io_progOpen(prg, 1);
                 else if ((i = io_progOpen2(prg)) > -1)
                         /* not found free program */
 #ifdef POPEN_STREAM  #ifdef POPEN_STREAM
                f = array(prg->prog_fds, i, FILE*);                        f = array(prg->prog_fds, i, FILE*);
 #else  #else
                f = array(prg->prog_fds, i, intptr_t);                        f = array(prg->prog_fds, i, intptr_t);
 #endif  #endif
         }          }
   
         /* execute new one program */  
         if (newOne && f)  
                 io_progOpen(prg, 1);  
   
         return f;          return f;
 }  }

Removed from v.1.1.2.19  
changed lines
  Added in v.1.1.2.21


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>