extern int MODCOUNT;
extern char LOG_FILE[MAXBUF];
int openSockfd[MAXSOCKS];
+int yield_depth;
sockaddr_in client,server;
socklen_t length;
sockaddr_in sock_us; // our port number
socklen_t uslen; // length of our port number
+ if (yield_depth > 3)
+ return;
+
+ yield_depth++;
+
/* time() seems to be a pretty expensive syscall, so avoid calling it too much.
* Once per loop iteration is pleanty.
*/
}
TickMissedTimers(TIME);
expire_run = true;
+ yield_depth--;
return;
}
else if ((TIME % 5) == 1)
* servers... so its nice and easy, just one call.
*/
if (!(numberactive = SE->Wait(activefds)))
+ {
+ yield_depth--;
return;
+ }
/**
* Now process each of the fd's. For users, we have a fast
break;
}
}
+ yield_depth--;
}
int InspIRCd::Run()
/* main loop, this never returns */
expire_run = false;
+ yield_depth = 0;
while (true)
{