summaryrefslogtreecommitdiff
path: root/src/TrackerWatcherCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-09-02 17:43:26 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-09-02 17:43:26 +0900
commite2bf627b17c5a25692a5a4d530e1774d95cc6a46 (patch)
treec92b2c1368908124849636644b7e9974c69d1c9a /src/TrackerWatcherCommand.cc
parent3c39931566797f9555264ef90cbde0cb5009a80f (diff)
Ensure that num of commands is 0 before processing tracker response
Diffstat (limited to 'src/TrackerWatcherCommand.cc')
-rw-r--r--src/TrackerWatcherCommand.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/TrackerWatcherCommand.cc b/src/TrackerWatcherCommand.cc
index d1264480..ac324871 100644
--- a/src/TrackerWatcherCommand.cc
+++ b/src/TrackerWatcherCommand.cc
@@ -112,7 +112,12 @@ bool TrackerWatcherCommand::execute() {
A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, ex);
}
}
- } else if(trackerRequestGroup_->downloadFinished()){
+ } else if(trackerRequestGroup_->getNumCommand() == 0 &&
+ trackerRequestGroup_->downloadFinished()){
+ // We really want to make sure that tracker request has finished
+ // by checking getNumCommand() == 0. Because we reset
+ // trackerRequestGroup_, if it is still used in other Command, we
+ // will get Segmentation fault.
try {
std::string trackerResponse = getTrackerResponse(trackerRequestGroup_);