diff --git a/servant/libservant/RemoteLogger.cpp b/servant/libservant/RemoteLogger.cpp index ef3b86ad..37afdcc6 100644 --- a/servant/libservant/RemoteLogger.cpp +++ b/servant/libservant/RemoteLogger.cpp @@ -114,7 +114,9 @@ void RollWriteT::setDyeingLogInfo(const string &sApp, const string &sServer, con LocalRollLogger::~LocalRollLogger() { - for(auto e : _logger_ex) + terminate(); + + for(const auto& e : _logger_ex) { delete e.second; } @@ -518,7 +520,7 @@ void TimeWriteT::operator()(ostream &of, const deque > &buf { try { - _logPrx->logger(DYEING_DIR, DYEING_FILE, "day", "%Y%m%d", vDyeingLog, ServerConfig::Context); + _logPrx->logger(DYEING_DIR, DYEING_FILE, "day", "%Y%m%d", vDyeingLog, _logPrx->tars_communicator()->getClientConfig().Context); } catch(exception &ex) { diff --git a/servant/libservant/ServantHandle.cpp b/servant/libservant/ServantHandle.cpp index 6c52224d..3748d1bc 100644 --- a/servant/libservant/ServantHandle.cpp +++ b/servant/libservant/ServantHandle.cpp @@ -581,7 +581,7 @@ void ServantHandle::handleTarsProtocol(const CurrentPtr ¤t) int ret = TARSSERVERUNKNOWNERR; - string sResultDesc = ""; + string sResultDesc; ResponsePacket response; diff --git a/servant/libservant/ServantProxy.cpp b/servant/libservant/ServantProxy.cpp index 4e08be66..58c0c12c 100644 --- a/servant/libservant/ServantProxy.cpp +++ b/servant/libservant/ServantProxy.cpp @@ -814,12 +814,14 @@ uint32_t ServantProxy::tars_gen_requestid() void ServantProxy::tars_set_push_callback(const ServantProxyCallbackPtr & cb) { + std::lock_guard lock(_mutex); _pushCallback = cb; cb->setServantPrx(this); } ServantProxyCallbackPtr ServantProxy::tars_get_push_callback() { + std::lock_guard lock(_mutex); return _pushCallback; } diff --git a/servant/protocol b/servant/protocol index bbae12db..0dbd080c 160000 --- a/servant/protocol +++ b/servant/protocol @@ -1 +1 @@ -Subproject commit bbae12db66dc96b651fe1545a6b7387e1ec02091 +Subproject commit 0dbd080c8f1b927a7a3f7e5a36e134855dfa58c8