G*
runtime·netpoll(bool block)
{
+ static int32 lasterr;
EpollEvent events[128], *ev;
int32 n, i, waitms, mode;
G *gp;
retry:
n = runtime·epollwait(epfd, events, nelem(events), waitms);
if(n < 0) {
- if(n != -EINTR)
- runtime·printf("epollwait failed with %d\n", -n);
+ if(n != -EINTR && n != lasterr) {
+ lasterr = n;
+ runtime·printf("runtime: epollwait on fd %d failed with %d\n", epfd, -n);
+ }
goto retry;
}
gp = nil;
G*
runtime·netpoll(bool block)
{
+ static int32 lasterr;
Kevent events[64], *ev;
Timespec ts, *tp;
int32 n, i;
retry:
n = runtime·kevent(kq, nil, 0, events, nelem(events), tp);
if(n < 0) {
- if(n != -EINTR)
- runtime·printf("kqueue failed with %d\n", -n);
+ if(n != -EINTR && n != lasterr) {
+ lasterr = n;
+ runtime·printf("runtime: kevent on fd %d failed with %d\n", kq, -n);
+ }
goto retry;
}
for(i = 0; i < n; i++) {