NIM_PC_Demo
NIM_PC_Demo copied to clipboard
HttpTransThread::AddRequestToCatchList,请求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_; }
request_list_.insert(std::make_pair(request_current_sn_, 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_;
}
高亮处的 -= 就是变更。