summaryrefslogtreecommitdiff
path: root/src/DHTInteractionCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-05 14:15:50 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-05 14:15:50 +0000
commitbdb1a25ca71f6f81a504f7ad694931afbdb6c007 (patch)
treeb87c6a550d681b76e00180a548f74e31f21b8890 /src/DHTInteractionCommand.cc
parent20621d011da3bf96560557d82919911805e0892a (diff)
2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Catch exception inside DHTMessageReceiver::receiveMessage(). Log unknown message. * src/DHTMessageReceiver.{h, cc} * src/DHTMessageFactory.h * src/DHTMessageFactoryImpl.{h, cc} * src/DHTMessageTracker.cc (handleTimeout): Catch and handle exception. * src/DHTInteractionCommand.cc * src/DHTUnknownMessage.{h, cc} * test/DHTUnknownMessageTest.cc * test/MockDHTMessageFactory.h
Diffstat (limited to 'src/DHTInteractionCommand.cc')
-rw-r--r--src/DHTInteractionCommand.cc12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/DHTInteractionCommand.cc b/src/DHTInteractionCommand.cc
index 0b4b0323..068fdafe 100644
--- a/src/DHTInteractionCommand.cc
+++ b/src/DHTInteractionCommand.cc
@@ -76,16 +76,14 @@ bool DHTInteractionCommand::execute()
_taskQueue->executeTask();
- for(size_t i = 0; i < 20 && _readCheckSocket->isReadable(0); ++i) {
- try {
- _receiver->receiveMessage();
- } catch(RecoverableException* e) {
- logger->error(EX_EXCEPTION_CAUGHT, e);
- delete e;
+ for(size_t i = 0; i < 20; ++i) {
+ SharedHandle<DHTMessage> m = _receiver->receiveMessage();
+ if(m.isNull()) {
+ break;
}
}
+ _receiver->handleTimeout();
try {
- _receiver->handleTimeout();
_dispatcher->sendMessages();
} catch(RecoverableException* e) {
logger->error(EX_EXCEPTION_CAUGHT, e);