mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
minor bugfix : socket_server_poll never returns -1
This commit is contained in:
@@ -1672,10 +1672,11 @@ socket_server_poll(struct socket_server *ss, struct socket_message * result, int
|
|||||||
ss->event_index = 0;
|
ss->event_index = 0;
|
||||||
if (ss->event_n <= 0) {
|
if (ss->event_n <= 0) {
|
||||||
ss->event_n = 0;
|
ss->event_n = 0;
|
||||||
if (errno == EINTR) {
|
int err = errno;
|
||||||
continue;
|
if (err != EINTR) {
|
||||||
|
skynet_error(NULL, "socket-server: %s", strerror(err));
|
||||||
}
|
}
|
||||||
return -1;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
struct event *e = &ss->ev[ss->event_index++];
|
struct event *e = &ss->ev[ss->event_index++];
|
||||||
@@ -1752,9 +1753,11 @@ socket_server_poll(struct socket_server *ss, struct socket_message * result, int
|
|||||||
if (e->eof) {
|
if (e->eof) {
|
||||||
// For epoll (at least), FIN packets are exchanged both ways.
|
// For epoll (at least), FIN packets are exchanged both ways.
|
||||||
// See: https://stackoverflow.com/questions/52976152/tcp-when-is-epollhup-generated
|
// See: https://stackoverflow.com/questions/52976152/tcp-when-is-epollhup-generated
|
||||||
int r = halfclose_read(s) ? -1 : SOCKET_CLOSE;
|
int halfclose = halfclose_read(s);
|
||||||
force_close(ss, s, &l, result);
|
force_close(ss, s, &l, result);
|
||||||
return r;
|
if (!halfclose) {
|
||||||
|
return SOCKET_CLOSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user