Diff for /libaitio/src/exec.c between versions 1.1.2.10 and 1.1.2.11

version 1.1.2.10, 2013/12/05 23:43:46 version 1.1.2.11, 2013/12/06 01:03:05
Line 99  io_progClose(prog_t * __restrict prg, u_int closeNum) Line 99  io_progClose(prog_t * __restrict prg, u_int closeNum)
         for (i = array_Size(prg->prog_fds) - 1;           for (i = array_Size(prg->prog_fds) - 1; 
                         (closeNum ? ret < closeNum : 42) && i > -1; i--)                          (closeNum ? ret < closeNum : 42) && i > -1; i--)
                 if (array_Get(prg->prog_fds, i)) {                  if (array_Get(prg->prog_fds, i)) {
   #ifdef POPEN_STREAM
                         e_pclose(array(prg->prog_fds, i, FILE*));                          e_pclose(array(prg->prog_fds, i, FILE*));
   #else
                           e_pclose((int) array(prg->prog_fds, i, intptr_t));
   #endif
                         array_Del(prg->prog_fds, i, 0);                          array_Del(prg->prog_fds, i, 0);
                         clrbit(prg->prog_used, i);                          clrbit(prg->prog_used, i);
                         prg->prog_cnum--;                          prg->prog_cnum--;
Line 120  io_progClose(prog_t * __restrict prg, u_int closeNum) Line 124  io_progClose(prog_t * __restrict prg, u_int closeNum)
 int  int
 io_progOpen(prog_t * __restrict prg, u_int execNum)  io_progOpen(prog_t * __restrict prg, u_int execNum)
 {  {
   #ifdef POPEN_STREAM
         FILE *f;          FILE *f;
   #else
           int f;
   #endif
         int stat, ret = 0;          int stat, ret = 0;
         register int i;          register int i;
         pid_t pid;          pid_t pid;
Line 136  io_progOpen(prog_t * __restrict prg, u_int execNum) Line 144  io_progOpen(prog_t * __restrict prg, u_int execNum)
         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)) {
                         f = e_popen(prg->prog_name, "r+", &pid);                          f = e_popen(prg->prog_name, "r+", &pid);
   #ifdef POPEN_STREAM
                         if (!f) {                          if (!f) {
   #else
                           if (f == -1) {
   #endif
                                 LOGERR;                                  LOGERR;
                                 ret = -1;                                  ret = -1;
                                 break;                                  break;
Line 202  io_progVacuum(prog_t * __restrict prg, u_int toNum) Line 214  io_progVacuum(prog_t * __restrict prg, u_int toNum)
         pthread_mutex_lock(&prg->prog_mtx);          pthread_mutex_lock(&prg->prog_mtx);
         for (i = array_Size(prg->prog_fds) - 1; prg->prog_cnum > toNum && i > -1; i--)          for (i = array_Size(prg->prog_fds) - 1; prg->prog_cnum > toNum && i > -1; i--)
                 if (array_Get(prg->prog_fds, i) && isclr(prg->prog_used, i)) {                  if (array_Get(prg->prog_fds, i) && isclr(prg->prog_used, i)) {
   #ifdef POPEN_STREAM
                         e_pclose(array(prg->prog_fds, i, FILE*));                          e_pclose(array(prg->prog_fds, i, FILE*));
   #else
                           e_pclose((int) array(prg->prog_fds, i, intptr_t));
   #endif
                         array_Del(prg->prog_fds, i, 0);                          array_Del(prg->prog_fds, i, 0);
                         prg->prog_cnum--;                          prg->prog_cnum--;
                         ret++;                          ret++;
Line 231  io_progCheck(prog_t * __restrict prg) Line 247  io_progCheck(prog_t * __restrict prg)
         pthread_mutex_lock(&prg->prog_mtx);          pthread_mutex_lock(&prg->prog_mtx);
         for (i = 0; i < array_Size(prg->prog_fds); i++)          for (i = 0; i < array_Size(prg->prog_fds); i++)
                 if (array_Get(prg->prog_fds, i) &&                   if (array_Get(prg->prog_fds, i) && 
   #ifdef POPEN_STREAM
                                 (p = pio_pgetpid(array(prg->prog_fds, i, FILE*))))                                  (p = pio_pgetpid(array(prg->prog_fds, i, FILE*))))
   #else
                                   (p = pio_pgetpid((int) array(prg->prog_fds, i, intptr_t))))
   #endif
                         if (waitpid(p->pid, &p->stat, WNOHANG) > 0) {                          if (waitpid(p->pid, &p->stat, WNOHANG) > 0) {
                                 clrbit(prg->prog_used, i);                                  clrbit(prg->prog_used, i);
                                 ret++;                                  ret++;
Line 247  io_progCheck(prog_t * __restrict prg) Line 267  io_progCheck(prog_t * __restrict prg)
  * @prg = program pool   * @prg = program pool
  * return: NULL error or !=NULL attached program handle   * return: NULL error or !=NULL attached program handle
  */   */
   #ifdef POPEN_STREAM
 FILE *  FILE *
   #else
   int
   #endif
 io_progAttach(prog_t * __restrict prg)  io_progAttach(prog_t * __restrict prg)
 {  {
   #ifdef POPEN_STREAM
         FILE *f = NULL;          FILE *f = NULL;
   #else
           int f = -1;
   #endif
         register int i;          register int i;
   
         if (!prg)          if (!prg)
   #ifdef POPEN_STREAM
                 return NULL;                  return NULL;
   #else
                   return -1;
   #endif
   
         pthread_mutex_lock(&prg->prog_mtx);          pthread_mutex_lock(&prg->prog_mtx);
         for (i = 0; i < array_Size(prg->prog_fds); i++)          for (i = 0; i < array_Size(prg->prog_fds); i++)
                 if (array_Get(prg->prog_fds, i) && isclr(prg->prog_used, i)) {                  if (array_Get(prg->prog_fds, i) && isclr(prg->prog_used, i)) {
                         setbit(prg->prog_used, i);                          setbit(prg->prog_used, i);
   #ifdef POPEN_STREAM
                         f = array(prg->prog_fds, i, FILE*);                          f = array(prg->prog_fds, i, FILE*);
   #else
                           f = array(prg->prog_fds, i, intptr_t);
   #endif
                         break;                          break;
                 }                  }
         pthread_mutex_unlock(&prg->prog_mtx);          pthread_mutex_unlock(&prg->prog_mtx);
Line 276  io_progAttach(prog_t * __restrict prg) Line 312  io_progAttach(prog_t * __restrict prg)
  * return: none   * return: none
  */   */
 void  void
   #ifdef POPEN_STREAM
 io_progDetach(prog_t * __restrict prg, FILE *pfd)  io_progDetach(prog_t * __restrict prg, FILE *pfd)
   #else
   io_progDetach(prog_t * __restrict prg, int pfd)
   #endif
 {  {
         register int i;          register int i;
   
Line 285  io_progDetach(prog_t * __restrict prg, FILE *pfd) Line 325  io_progDetach(prog_t * __restrict prg, FILE *pfd)
   
         pthread_mutex_lock(&prg->prog_mtx);          pthread_mutex_lock(&prg->prog_mtx);
         for (i = 0; i < array_Size(prg->prog_fds); i++)          for (i = 0; i < array_Size(prg->prog_fds); i++)
   #ifdef POPEN_STREAM
                 if (array(prg->prog_fds, i, FILE*) == pfd) {                  if (array(prg->prog_fds, i, FILE*) == pfd) {
   #else
                   if (array(prg->prog_fds, i, intptr_t) == pfd) {
   #endif
                         clrbit(prg->prog_used, i);                          clrbit(prg->prog_used, i);
                         break;                          break;
                 }                  }

Removed from v.1.1.2.10  
changed lines
  Added in v.1.1.2.11


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