From: Christian P. <cp...@us...> - 2005-05-20 14:22:12
|
Update of /cvsroot/pclasses/pclasses2/src/System In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9287/src/System Modified Files: FdListener.posix.cpp SignalListener.posix.cpp Log Message: - Added some Trace-messages Index: FdListener.posix.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/FdListener.posix.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- FdListener.posix.cpp 23 Apr 2005 17:47:07 -0000 1.5 +++ FdListener.posix.cpp 20 May 2005 14:21:58 -0000 1.6 @@ -18,6 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#include "pclasses/Trace.h" #include "FdListener.h" #include "timeout.h" @@ -77,6 +78,7 @@ protected: void onRead() { + P_TRACE(WakeupListener) << "onRead(): got woken up ..."; // read data from pipe .. we dont want to get signaled forever ... char tmp[256]; ::read(fd(), tmp, sizeof(tmp)); @@ -129,6 +131,7 @@ void FdListenerList::wakeup() { + P_TRACE(FdListenerList) << "wakeup(): waking up FdListenerList..."; ::write(_wakeupPipe[1], "W", 1); } @@ -205,20 +208,26 @@ { CriticalSection::ScopedLock lck(_listenersCs); - highest_fd = + highest_fd = populate_fd_sets(&read_fds, &write_fds, &error_fds, _listeners); } _select_loop: Private::get_timeout(&timeout, timeout_ms, Private::TIMEOUT_RELATIVE); + P_TRACE(FdListenerList) << "wait() wait for fd-events .. highest_fd=" + << highest_fd << ", timeout_ms=" << timeout_ms; + int ret = ::select(highest_fd + 1, &read_fds, &write_fds, &error_fds, &timeout); if(ret == -1) { if(errno == EINTR) + { + P_TRACE(FdListenerList) << "wait() interrupted ... restarting"; goto _select_loop; + } //@@fixme ... we don't want to throw from Thread::main() !!! throw SystemError(errno, "Could not select() for events", P_SOURCEINFO); Index: SignalListener.posix.cpp =================================================================== RCS file: /cvsroot/pclasses/pclasses2/src/System/SignalListener.posix.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- SignalListener.posix.cpp 28 Apr 2005 10:23:57 -0000 1.6 +++ SignalListener.posix.cpp 20 May 2005 14:21:58 -0000 1.7 @@ -127,6 +127,8 @@ */ void onRead() { + P_TRACE(SignalFdListener) << "Dispatching signals ..."; + // block all signals ... sigset_t blockedSet, oldSet; sigfillset(&blockedSet); @@ -139,7 +141,7 @@ qs = _signals.front(); _signals.pop(); - P_TRACE(SignalFdListener) << "Dispatching signal sig=" << qs.sig; + P_TRACE(SignalFdListener) << "Dispatching signal #" << qs.sig; if(_listeners[qs.sig]) _listeners[qs.sig]->onSignal(qs.val); @@ -184,7 +186,7 @@ SignalListener::SignalListener(int sig) : _sig(sig) { - P_TRACE(SignalListener) << "Installing signal handler for sig=" << sig; + P_TRACE(SignalListener) << "Installing signal handler for signal #" << sig; struct sigaction sa; sa.sa_sigaction = &signal_handler; @@ -199,7 +201,7 @@ SignalListener::~SignalListener() { - P_TRACE(SignalListener) << "Destroying signal handler for sig=" << _sig; + P_TRACE(SignalListener) << "Destroying signal handler for signal #" << _sig; SignalFdListener& l = SignalFdListener::instance(); l.removeListener(*this); |