41 if ( getrlimit (RLIMIT_NOFILE, &rlim) == 0 ) {
50 WSAStartup (MAKEWORD (2, 2), &data);
69 const std::string& name_)
77 DL((
REACT,
"TIMEOUT_EVENT......: (%d,%d)\n",
78 timeout_.
sec(),timeout_.
msec()));
84 DL((
REACT,
"---Modified Timer Queue----\n"));
86 DL((
REACT,
"---------------------------\n"));
97 std::ostringstream msg;
104 DL((
ASSAERR,
"readset: fd %d out of range\n", fd_));
115 DL((
ASSAERR,
"writeset: fd %d out of range\n", fd_));
119 msg <<
" WRITE_EVENT";
126 DL((
ASSAERR,
"exceptset: fd %d out of range\n", fd_));
130 msg <<
" EXCEPT_EVENT";
134 DL((
REACT,
"Registered EvtH(%s) fd=%d (0x%x) for event(s) %s\n",
135 eh_->
get_id ().c_str (), fd_, (
u_long)eh_, msg.str ().c_str () ));
144 DL((
REACT,
"Modified waitSet:\n"));
158 DL((
REACT,
"---Modified Timer Queue----\n"));
160 DL((
REACT,
"---------------------------\n"));
193 if ((*iter).second == eh_) {
207 if ((*iter).second == eh_) {
221 if ((*iter).second == eh_) {
233 DL((
REACT,
"Found EvtH \"%s\"(%p)\n", eh_->
get_id ().c_str (), eh_));
239 DL((
REACT,
"Modifies waitSet:\n"));
257 DL((
REACT,
"Removing handler for fd=%d\n",fd_));
265 ehp = (*iter).second;
278 ehp = (*iter).second;
291 ehp = (*iter).second;
302 if (ret ==
true && ehp != NULL) {
303 DL((
REACT,
"Removed EvtH \"%s\"(%p)\n", ehp->
get_id ().c_str (), ehp));
309 DL((
REACT,
"Modifies waitSet:\n"));
321 bool num_removed =
false;
323 timeval poll = { 0, 0 };
328 if ( ::select (fd+1, &mask, NULL, NULL, &poll) < 0 ) {
331 DL((
REACT,
"Detected BAD FD: %d\n", fd ));
336 return (num_removed);
348 DL((
REACT,
"Received cmd to stop Reactor\n"));
370 if ( errno == EINTR ) {
371 EL((
REACT,
"EINTR: interrupted select(2)\n"));
387 if ( errno == EBADF ) {
388 DL((
REACT,
"EBADF: bad file descriptor\n"));
395 DL ((
REACT,
"select(3) error = %d\n", WSAGetLastError()));
413 DL((
REACT,
"m_readySet: %d FDs are ready for processing\n", n));
444 DL((
REACT,
"--------- Timer Queue ----------\n"));
446 DL((
REACT,
"--------------------------------\n"));
449 *howlong_ = tv - now;
452 *howlong_ = (*maxwait_+now) < tv ? *maxwait_ : tv-now;
457 if (howlong_ != NULL) {
458 DL((
REACT,
"delay (%f)\n",
double (*howlong_) ));
461 DL((
REACT,
"delay (forever)\n"));
500 DL((
REACT,
"======================================\n"));
524 DL((
REACT,
"isAnyReady returned: %d\n",nReady));
529 DL((
REACT,
"=== m_waitSet ===\n"));
534 DL ((
REACT,
"m_readySet after reset():\n"));
538 DL ((
REACT,
"m_readySet after assign:\n"));
548 DL((
REACT,
"::select() returned: %d\n",nReady));
551 DL ((
REACT,
"m_readySet after select:\n"));
579 while (iter != fdSet_.end ())
582 ehp = (*iter).second;
584 if (mask_.
isSet (fd) && ehp != NULL)
587 DL((
REACT,
"Data detected from \"%s\"(fd=%d)\n",
588 eh_id.c_str (), fd));
590 ret = (ehp->*callback_) (fd);
596 DL((
REACT,
"%d bytes pending on fd=%d \"%s\"\n",
597 ret, fd, eh_id.c_str ()));
601 DL((
REACT,
"All data from \"%s\"(fd=%d) are consumed\n",
602 eh_id.c_str (), fd));
611 iter = fdSet_.begin ();
643 DL((
REACT,
"Dispatching %d FDs.\n",ready_));
678 ehp = (*iter).second;
684 ehp = (*iter).second;
690 ehp = (*iter).second;