Browse Source

Check for EWOULDBLOCK when supported in send and recv as well.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
cada0d3195
  1. 4
      miner.h
  2. 4
      util.c

4
miner.h

@ -60,6 +60,10 @@ static inline int fsync (int fd)
return (FlushFileBuffers ((HANDLE) _get_osfhandle (fd))) ? 0 : -1; return (FlushFileBuffers ((HANDLE) _get_osfhandle (fd))) ? 0 : -1;
} }
#ifndef EWOULDBLOCK
# define EWOULDBLOCK EAGAIN
#endif
#ifndef MSG_DONTWAIT #ifndef MSG_DONTWAIT
# define MSG_DONTWAIT 0x1000000 # define MSG_DONTWAIT 0x1000000
#endif #endif

4
util.c

@ -900,7 +900,7 @@ static bool __stratum_send(struct pool *pool, char *s, ssize_t len)
} }
sent = send(pool->sock, s + ssent, len, 0); sent = send(pool->sock, s + ssent, len, 0);
if (sent < 0) { if (sent < 0) {
if (errno != EAGAIN) { if (errno != EAGAIN && errno != EWOULDBLOCK) {
applog(LOG_DEBUG, "Failed to curl_easy_send in stratum_send"); applog(LOG_DEBUG, "Failed to curl_easy_send in stratum_send");
return false; return false;
} }
@ -985,7 +985,7 @@ char *recv_line(struct pool *pool)
n = recv(pool->sock, s, RECVSIZE, 0); n = recv(pool->sock, s, RECVSIZE, 0);
mutex_unlock(&pool->stratum_lock); mutex_unlock(&pool->stratum_lock);
if (n < 1 && errno != EAGAIN) { if (n < 1 && errno != EAGAIN && errno != EWOULDBLOCK) {
applog(LOG_DEBUG, "Failed to recv sock in recv_line"); applog(LOG_DEBUG, "Failed to recv sock in recv_line");
goto out; goto out;
} }

Loading…
Cancel
Save