pike.git / src / modules / Pipe / pipe.c

version» Context lines:

pike.git/src/modules/Pipe/pipe.c:321:    struct buffer *b;       debug_malloc_touch(s);       if(THIS->fd!= -1)    {    ptrdiff_t len = s->len;    char *data = s->str;    ptrdiff_t bytes;    -  fd_lseek(THIS->fd, THIS->pos, SEEK_SET); +  while ((fd_lseek(THIS->fd, THIS->pos, SEEK_SET) < 0) && (errno == EINTR)) +  ;    while (len > 0) {    do {    bytes = fd_write(THIS->fd, data, len);    } while ((bytes < 0) && (errno == EINTR));    if (bytes < 0) break;    data += bytes;    len -= bytes;    }    THIS->pos+=s->len;    return 0;
pike.git/src/modules/Pipe/pipe.c:484:       /* We have a file cache, read from it */    if (this->fd!=-1)    {    char buffer[READ_BUFFER_SIZE];    ptrdiff_t sz = this->pos-pos;       if (sz <= 0) return NULL; /* no data */    if (sz > READ_BUFFER_SIZE) sz = READ_BUFFER_SIZE;    THREADS_ALLOW(); -  fd_lseek(this->fd, pos, SEEK_SET); +  while ((fd_lseek(this->fd, pos, SEEK_SET) < 0) && (errno == EINTR)) +  ;    THREADS_DISALLOW();    do {    THREADS_ALLOW();    len = fd_read(this->fd, buffer, sz);    THREADS_DISALLOW();    if (len < 0) {    if (errno != EINTR) {    return(NULL);    }    check_threads_etc();
pike.git/src/modules/Pipe/pipe.c:894:    THIS->pos=fd_lseek(fd, 0L, SEEK_CUR);       THIS->living_outputs++;       while (THIS->firstbuffer)    {    ptrdiff_t len;    char *data;    b=THIS->firstbuffer;    THIS->firstbuffer=b->next; -  fd_lseek(THIS->fd, THIS->pos, SEEK_SET); +  while ((fd_lseek(THIS->fd, THIS->pos, SEEK_SET) < 0) && +  (errno == EINTR)) +  ;       len = b->s->len;    data = b->s->str;    while (len > 0) {    ptrdiff_t bytes;    do {    bytes = fd_write(THIS->fd, data, len);    } while((bytes < 0) && (errno == EINTR));    if (bytes < 0) break;    len -= bytes;
pike.git/src/modules/Pipe/pipe.c:1246:    free_svalue(& p->output_closed_callback);    free_svalue(& p->id);       SET_SVAL_TYPE(p->done_callback, T_INT);    SET_SVAL_TYPE(p->output_closed_callback, T_INT);    SET_SVAL_TYPE(p->id, T_INT);       /* p->done=0; */   }    - static void init_pipe_struct(struct object *o) + static void init_pipe_struct(struct object *DEBUGUSED(o))   {    debug_malloc_touch(o);       THIS->firstbuffer=THIS->lastbuffer=NULL;    THIS->firstinput=THIS->lastinput=NULL;    THIS->firstoutput=NULL;    THIS->bytes_in_buffer=0;    THIS->pos=0;    THIS->sleeping=0;    THIS->done=0;    THIS->fd=-1;    SET_SVAL_TYPE(THIS->done_callback, T_INT);    SET_SVAL_TYPE(THIS->output_closed_callback, T_INT);    SET_SVAL_TYPE(THIS->id, T_INT);    THIS->id.u.integer=0;    THIS->living_outputs=0;    THIS->sent=0;   }    - static void exit_pipe_struct(struct object *o) + static void exit_pipe_struct(struct object *UNUSED(o))   {    close_and_free_everything(NULL,THIS);   }    - static void exit_output_struct(struct object *obj) + static void exit_output_struct(struct object *DEBUGUSED(obj))   {    struct output *o;       debug_malloc_touch(obj);    o=(struct output *)(Pike_fp->current_storage);       if (o->obj)    {    if(o->obj->prog)    {
pike.git/src/modules/Pipe/pipe.c:1303:    if(!THISOBJ->prog)    Pike_error("Pipe done callback destructed pipe.\n");    }    free_object(o->obj);    noutputs--;    o->obj=0;    o->fd=-1;    }   }    - static void init_output_struct(struct object *ob) + static void init_output_struct(struct object *DEBUGUSED(ob))   {    struct output *o;    debug_malloc_touch(ob);    o=(struct output *)(Pike_fp->current_storage);    o->obj=0;   }         /********** Pike init *******************************************************/