Open Janeny2013 opened 1 year ago
requestlist.insert(std::make_pair(request_currentsn, std::make_pair(request.get(), request))); map本身不管理内存,pair的second是监控生命期。这个不是问题了,在回话管理中管理生命期 但request_current_sn_还是没理解,这个id哪里变更
HttpRequestID HttpTransThread::AddRequestToCatchList(const HttpRequestSharedPtr &request)
{
nbase::NAutoLock autolock(&message_loop_flag_lock_);
+ request_current_sn_ -= 1;
if (request_current_sn_ == INVALID_HTTPREQUESTID)
request_current_sn_ = kREQUEST_ID_BASE;
request_list_.insert(std::make_pair(request_current_sn_, std::make_pair(request.get(), request)));
request->attach_release(ToWeakCallback(std::bind(&HttpTransThread::OnRequestRelease, this, request.get())));
return request_current_sn_;
}
高亮处的 -= 就是变更。
HttpRequestID HttpTransThread::AddRequestToCatchList(const HttpRequestSharedPtr &request) { nbase::NAutoLock autolock(&message_loop_flaglock); request_currentsn -= 1; if (request_currentsn == INVALID_HTTPREQUESTID) request_currentsn = kREQUEST_ID_BASE; requestlist.insert(std::make_pair(request_currentsn, std::make_pair(request.get(), request))); request->attach_release(ToWeakCallback(std::bind(&HttpTransThread::OnRequestRelease, this, request.get()))); return request_currentsn; }