Commit 82ef961a authored by Bill Neubauer's avatar Bill Neubauer Committed by Shenghou Ma

runtime: fix runtime·netpoll() to call runtime·netpollready() only once per event.

R=golang-dev, minux.ma
CC=golang-dev
https://golang.org/cl/9808043
parent ae73b903
......@@ -74,7 +74,7 @@ runtime·netpoll(bool block)
static int32 lasterr;
Kevent events[64], *ev;
Timespec ts, *tp;
int32 n, i;
int32 n, i, mode;
G *gp;
if(kq == -1)
......@@ -97,10 +97,13 @@ retry:
}
for(i = 0; i < n; i++) {
ev = &events[i];
mode = 0;
if(ev->filter == EVFILT_READ)
runtime·netpollready(&gp, (PollDesc*)ev->udata, 'r');
mode += 'r';
if(ev->filter == EVFILT_WRITE)
runtime·netpollready(&gp, (PollDesc*)ev->udata, 'w');
mode += 'w';
if(mode)
runtime·netpollready(&gp, (PollDesc*)ev->udata, mode);
}
if(block && gp == nil)
goto retry;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment