}
else if(!strcmp(received_msg, "NOTFOUND")) {
DBG("For buffer %s, the trace was not found. This likely means it was destroyed by the user.", buf->name);
- retval = GET_SUBBUF_DONE;
+ retval = GET_SUBBUF_DIED;
goto end_rep;
}
else {
result = patient_write(buf->file_fd, subbuf_mem, cur_sb_size);
if(result == -1) {
PERROR("write");
- /* FIXME: maybe drop this trace */
return -1;
}
}
/* write data to file */
- write_current_subbuffer(buf);
- /* FIXME: handle return value? */
+ result = write_current_subbuffer(buf);
+ if(result == -1) {
+ ERR("Failed writing a subbuffer to file (channel=%s). Dropping this buffer.", buf->name);
+ }
/* put the subbuffer */
result = put_subbuffer(buf);
consumer_loop(buf);
- free(args->bufname);
+ free((void *)args->bufname);
destroy_buffer(buf);
end:
- /* bufname is free'd in free_buffer() */
free(args);
return NULL;
}