From d28c87a3f1209fc338540fad5fe1542f8b2d7ba5 Mon Sep 17 00:00:00 2001 From: Ira Cooper Date: Wed, 13 Mar 2013 13:36:11 +0000 Subject: [PATCH] tsocket: ENOMEM can be retried on illumos/Solaris. The writev system call can return -1 and errno ENOMEM, as a retriable condition. --- lib/tsocket/tsocket_bsd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c index 4b54d31..89e5f4c 100644 --- a/lib/tsocket/tsocket_bsd.c +++ b/lib/tsocket/tsocket_bsd.c @@ -60,6 +60,12 @@ static int tsocket_bsd_error_from_errno(int ret, return sys_errno; } + /* ENOMEM is retryable on Solaris/illumos, and possibly other systems. */ + if (sys_errno == ENOMEM) { + *retry = true; + return sys_errno; + } + #ifdef EWOULDBLOCK if (sys_errno == EWOULDBLOCK) { *retry = true; -- 1.7.10.5