mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
dispatch read before write, and try to dispath both
This commit is contained in:
@@ -904,15 +904,20 @@ socket_server_poll(struct socket_server *ss, struct socket_message * result, int
|
||||
fprintf(stderr, "socket-server: invalid socket\n");
|
||||
break;
|
||||
default:
|
||||
if (e->write) {
|
||||
int type = send_buffer(ss, s, result);
|
||||
if (e->read) {
|
||||
int type = forward_message(ss, s, result);
|
||||
if (e->write) {
|
||||
// Try to dispatch write message next step if write flag set.
|
||||
e->read = false;
|
||||
--ss->event_index;
|
||||
}
|
||||
if (type == -1)
|
||||
break;
|
||||
clear_closed_event(ss, result, type);
|
||||
return type;
|
||||
}
|
||||
if (e->read) {
|
||||
int type = forward_message(ss, s, result);
|
||||
if (e->write) {
|
||||
int type = send_buffer(ss, s, result);
|
||||
if (type == -1)
|
||||
break;
|
||||
clear_closed_event(ss, result, type);
|
||||
|
||||
Reference in New Issue
Block a user