NIM_PC_Demo icon indicating copy to clipboard operation
NIM_PC_Demo copied to clipboard

HttpTransThread::AddRequestToCatchList,请求id和请求的内存堆,好像都有问题

Open Janeny2013 opened this issue 2 years ago • 2 comments

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_; }

Janeny2013 avatar Jan 04 '23 06:01 Janeny2013

request_list_.insert(std::make_pair(request_current_sn_, std::make_pair(request.get(), request))); map本身不管理内存,pair的second是监控生命期。这个不是问题了,在回话管理中管理生命期 但request_current_sn_还是没理解,这个id哪里变更

Janeny2013 avatar Jan 04 '23 08:01 Janeny2013

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_;
}

高亮处的 -= 就是变更。

nmgwddj avatar Jul 26 '24 09:07 nmgwddj