EINTR fixed

This commit is contained in:
Edward Emelianov 2020-12-23 11:57:49 +03:00
parent a33179c02a
commit 655ad5bd90

5
tty.c
View File

@ -49,7 +49,10 @@ int Read_tty(TTY_descr *d){
tv.tv_sec = sec; tv.tv_usec = usec; tv.tv_sec = sec; tv.tv_usec = usec;
retval = select(d->comfd + 1, &rfds, NULL, NULL, &tv); retval = select(d->comfd + 1, &rfds, NULL, NULL, &tv);
if(!retval) break; if(!retval) break;
if(retval < 0) return -1; if(retval < 0){
if(errno == EINTR) continue;
return -1;
}
if(FD_ISSET(d->comfd, &rfds)){ if(FD_ISSET(d->comfd, &rfds)){
l = read(d->comfd, ptr, length); l = read(d->comfd, ptr, length);
if(l < 1) return -1; // disconnected if(l < 1) return -1; // disconnected