Code changes are integrated in Solaris and now I am trying to give back to community. If Socket is getting interrupted with signal EINTR, we should keep socket in progress state. I have borrowed following code from Socket Write _fs_flush():line274 . I have done exactly same at _fs_fill (). Socket Write will not close the connection and re attempt to read buffer.
Signed-off-by: Arvind Umrao <[email protected]> --- src/fc/fsio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fc/fsio.c b/src/fc/fsio.c index 03a689f..4deab88 100644 --- a/src/fc/fsio.c +++ b/src/fc/fsio.c @@ -184,8 +184,11 @@ _fs_fill (FSFpePtr conn) continue; } } - _fs_connection_died (conn); - return FSIO_ERROR; + if (!ECHECK(EINTR)) + { + _fs_connection_died (conn); + return FSIO_ERROR; + } } } return FSIO_READY; -- 1.7.9.2 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
