]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvh_write: another way to check for write timeouts
authorJaroslav Kysela <perex@perex.cz>
Tue, 2 Jun 2015 18:42:24 +0000 (20:42 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 2 Jun 2015 18:43:17 +0000 (20:43 +0200)
src/wrappers.c

index 66a9ee1599157d40667b9c44abd8e8dda90b490a..4a204a496676980db18459e14fe82d82ece031e0 100644 (file)
@@ -72,19 +72,14 @@ tvh_pipe_close(th_pipe_t *p)
 int
 tvh_write(int fd, const void *buf, size_t len)
 {
+  time_t next = dispatch_clock + 25;
   ssize_t c;
-  struct stat st;
-  int err;
-  socklen_t errlen;
 
   while (len) {
     c = write(fd, buf, len);
     if (c < 0) {
       if (ERRNO_AGAIN(errno)) {
-        fstat(fd, &st);
-        errlen = sizeof(err);
-        if (S_ISSOCK(st.st_mode) &&
-            (getsockopt(fd, SOL_SOCKET, SO_ERROR, (char *)&err, &errlen) || err))
+        if (dispatch_clock > next)
           break;
         usleep(100);
         continue;