Skip to content
  • Marc-André Lureau's avatar
    ec5b6c9c
    io/command: implement support for win32 · ec5b6c9c
    Marc-André Lureau authored
    
    
    The initial implementation was changing the pipe state created by GLib
    to PIPE_NOWAIT, but it turns out it doesn't work (read/write returns an
    error). Since reading may return less than the requested amount, it
    seems to be non-blocking already. However, the IO operation may block
    until the FD is ready, I can't find good sources of information, to be
    safe we can just poll for readiness before.
    
    Alternatively, we could setup the FDs ourself, and use UNIX sockets on
    Windows, which can be used in blocking/non-blocking mode. I haven't
    tried it, as I am not sure it is necessary.
    
    Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Message-Id: <20221006113657.2656108-6-marcandre.lureau@redhat.com>
    ec5b6c9c
    io/command: implement support for win32
    Marc-André Lureau authored
    
    
    The initial implementation was changing the pipe state created by GLib
    to PIPE_NOWAIT, but it turns out it doesn't work (read/write returns an
    error). Since reading may return less than the requested amount, it
    seems to be non-blocking already. However, the IO operation may block
    until the FD is ready, I can't find good sources of information, to be
    safe we can just poll for readiness before.
    
    Alternatively, we could setup the FDs ourself, and use UNIX sockets on
    Windows, which can be used in blocking/non-blocking mode. I haven't
    tried it, as I am not sure it is necessary.
    
    Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Message-Id: <20221006113657.2656108-6-marcandre.lureau@redhat.com>
Loading