A comment currently states that "*the* socket must be set to non-blocking
only in the parent" (emphasis mine). This is a thinko: it implies that we
have just one file descriptor, and that the underlying file description
(which is manipulated by fcntl()'s F_GETFL and F_SETFL) is shared by the
parent and the child processes. That's not the case: we have *two* sockets
here (a socket pair), one of which is used by the parent exclusively, and
the other is used by the child exclusively.

Clarify the comment: say that we set the parent-side end of the socket
pair to non-blocking.

This clarification will play a role in a subsequent patch.

Signed-off-by: Laszlo Ersek <ler...@redhat.com>
Reviewed-by: Richard W.M. Jones <rjo...@redhat.com>
---

Notes:
    v4:
    
    - pick up Rich's R-b
    
    context:-U5

 generator/states-connect.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generator/states-connect.c b/generator/states-connect.c
index 503f3ebe8819..137350cc77e6 100644
--- a/generator/states-connect.c
+++ b/generator/states-connect.c
@@ -281,11 +281,11 @@  CONNECT_COMMAND.START:
   /* Parent. */
   close (sv[1]);
 
   h->pid = pid;
 
-  /* The socket must be set to non-blocking only in the parent,
+  /* Only the parent-side end of the socket pair must be set to non-blocking,
    * because the child may not be expecting a non-blocking socket.
    */
   flags = fcntl (sv[0], F_GETFL, 0);
   if (flags == -1 ||
       fcntl (sv[0], F_SETFL, flags|O_NONBLOCK) == -1) {

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to