Browse Source

Give correct return code in cgsem_mswait

Con Kolivas 12 years ago
parent
commit
c9c39ac14d
1 changed files with 5 additions and 2 deletions
  1. 5 2
      util.c

+ 5 - 2
util.c

@@ -2472,9 +2472,12 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
 	timeraddspec(&abs_timeout, &ts_now);
 	ret = sem_timedwait(cgsem, &abs_timeout);
 
-	if (unlikely(ret && !sock_timeout()))
+	if (ret) {
+		if (likely(sock_timeout()))
+			return ETIMEDOUT;
 		quitfrom(1, file, func, line, "Failed to sem_timedwait errno=%d cgsem=0x%p", errno, cgsem);
-	return ret;
+	}
+	return 0;
 }
 
 void _cgsem_destroy(cgsem_t *cgsem)