ret = write(fd, sm, sizeof *sm);
} while(ret < 0 && errno == EINTR);
if(ret < 0)
ret = write(fd, sm, sizeof *sm);
} while(ret < 0 && errno == EINTR);
if(ret < 0)
ret = read(fd, sm, sizeof *sm);
} while(ret < 0 && errno == EINTR);
if(ret < 0) {
ret = read(fd, sm, sizeof *sm);
} while(ret < 0 && errno == EINTR);
if(ret < 0) {