Martin Cap wrote:
Clemens Kirchgatterer wrote:
Martin Cap macap20001@compuserve.de wrote:
Today I tried to set O_NONBLOCK to the open()-calls (the code does a
"do{ r = read(...); }while(r!=-1 && r != EINTR);" at stream.c:271
shouldn't it be: while(r!=-1 && errno != EINTR); ?
when i think about it, i'd rather do { r = read(...); } while (r >= 0 || ((r < 0) && (errno == EINTR)));
b.t.w. doesn't that eat cpu like crazy when O_NONBLOCK is set?
Sure it does.
How about putting in a sched_yield() or usleep() call then?
Carsten.