提交 0150c862 authored 作者: Anthony Minessale's avatar Anthony Minessale

FS-6854 #comment try this patch

上级 6ac26fcc
Thu Sep 25 21:43:53 CDT 2014 Tue Sep 30 20:32:49 CDT 2014
...@@ -352,7 +352,10 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ...@@ -352,7 +352,10 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
goto end; goto end;
} }
if (block) ms_sleep(10); if (block) {
wsh->x++;
ms_sleep(10);
}
} }
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100); } while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
...@@ -361,14 +364,19 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ...@@ -361,14 +364,19 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
} }
do { do {
r = recv(wsh->sock, data, bytes, 0); r = recv(wsh->sock, data, bytes, 0);
if (r == -1) { if (r == -1) {
if (!block && xp_is_blocking(xp_errno())) { if (!block && xp_is_blocking(xp_errno())) {
r = -2; r = -2;
goto end; goto end;
} }
if (block) ms_sleep(10); if (block) {
wsh->x++;
ms_sleep(10);
}
} }
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100); } while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
......
...@@ -352,7 +352,10 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ...@@ -352,7 +352,10 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
goto end; goto end;
} }
if (block) ms_sleep(10); if (block) {
wsh->x++;
ms_sleep(10);
}
} }
} while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100); } while (r == -1 && err == SSL_ERROR_WANT_READ && wsh->x < 100);
...@@ -361,14 +364,19 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block) ...@@ -361,14 +364,19 @@ ssize_t ws_raw_read(wsh_t *wsh, void *data, size_t bytes, int block)
} }
do { do {
r = recv(wsh->sock, data, bytes, 0); r = recv(wsh->sock, data, bytes, 0);
if (r == -1) { if (r == -1) {
if (!block && xp_is_blocking(xp_errno())) { if (!block && xp_is_blocking(xp_errno())) {
r = -2; r = -2;
goto end; goto end;
} }
if (block) ms_sleep(10); if (block) {
wsh->x++;
ms_sleep(10);
}
} }
} while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100); } while (r == -1 && xp_is_blocking(xp_errno()) && wsh->x < 100);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论