Fixup fromcvs/togit conversion
[minix-pkgsrc.git] / sysutils / libgtop / patches / patch-bc
blobc8296aa5abcc5afc868bf549fe0f4f6e1b79a0b6
1 $NetBSD: patch-bc,v 1.2 2006/03/30 21:09:48 jmmv Exp $
3 From FreeBSD's GNOME development repository.
5 --- src/daemon/io.c.orig        2005-12-12 11:09:38.000000000 +0100
6 +++ src/daemon/io.c
7 @@ -22,6 +22,7 @@
8  */
9  
10  #include <config.h>
11 +#include <errno.h>
12  #include "daemon.h"
13  #include <glibtop/error.h>
15 @@ -37,9 +38,13 @@ do_output (int s, glibtop_response *resp
16         resp->offset = offset;
17         resp->data_size = data_size;
19 +retry1:
20         if (s == 0) {
21 -               if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0)
22 +               if (write (1, (const void *) resp, sizeof (glibtop_response)) < 0) {
23 +                       if (errno == EINTR)
24 +                               goto retry1;
25                         glibtop_warn_io ("write");
26 +               }
27         } else {
28                 if (send (s, (const void *) resp, sizeof (glibtop_response), 0) < 0)
29                         glibtop_warn_io ("send");
30 @@ -50,9 +55,13 @@ do_output (int s, glibtop_response *resp
31                 fprintf (stderr, "Writing %d bytes of data.\n", resp->data_size);
32  #endif
34 +retry2:
35                 if (s == 0) {
36 -                       if (write (1, data, resp->data_size) < 0)
37 +                       if (write (1, data, resp->data_size) < 0) {
38 +                               if (errno == EINTR)
39 +                                       goto retry2;
40                                 glibtop_warn_io ("write");
41 +                       }
42                 } else {
43                         if (send (s, data, resp->data_size, 0) , 0)
44                                 glibtop_warn_io ("send");
45 @@ -68,6 +77,7 @@ do_read (int s, void *ptr, size_t total_
46         size_t already_read = 0, remaining = total_size;
48         while (already_read < total_size) {
49 +retry:
50                 if (s)
51                         nread = recv (s, ptr, remaining, 0);
52                 else
53 @@ -79,6 +89,8 @@ do_read (int s, void *ptr, size_t total_
54                 }
56                 if (nread <= 0) {
57 +                       if (errno == EINTR)
58 +                               goto retry;
59                         glibtop_warn_io ("recv");
60                         return 0;
61                 }