diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-09-02 17:43:26 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-09-02 17:43:26 +0900 |
| commit | e2bf627b17c5a25692a5a4d530e1774d95cc6a46 (patch) | |
| tree | c92b2c1368908124849636644b7e9974c69d1c9a /src/TrackerWatcherCommand.cc | |
| parent | 3c39931566797f9555264ef90cbde0cb5009a80f (diff) | |
Ensure that num of commands is 0 before processing tracker response
Diffstat (limited to 'src/TrackerWatcherCommand.cc')
| -rw-r--r-- | src/TrackerWatcherCommand.cc | 7 |
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_); |
