Ядро общего выпуска PTRC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ядро общего выпуска PTR

Сообщение Anonymous »

Версия GDB: 4.9.2.
Режим выполнения: многопоточный.
Выполняется код 1, ядро:

Код: Выделить всё

  auto close_handle = [this, conn, &service_spec]() {
FLUX_LOG(INFO, "close connection on response with spec: [%s]",
service_spec.ToString().c_str());
auto client_conn = static_cast(conn);
auto conn_mgr = this->selected_conn_mgr_;
conn_mgr->EndRequest(client_conn);
};
После изменения ядра исчезло:

Код: Выделить всё

  auto close_handle = [this, conn, &service_spec]() {
FLUX_LOG(INFO, "close connection on response with spec: [%s]",
service_spec.ToString().c_str());
auto client_conn = static_cast(conn);
this->selected_conn_mgr_->EndRequest(client_conn);
};

Код: Выделить всё

conn_mgr
— это общий PTR, в code1 общий PTR создается, а затем уничтожается. Когда я одновременно запрашиваю свой сервер. Ядро возникло из-за материалаshared_ptr, основная информация приведена ниже:

Код: Выделить всё

#0  0x000000000099c8f0 in ?? ()
#1  0x00000000005ae1f8 in std::_Sp_counted_base::_M_release (this=0x9b9020) at /usr/include/c++/4.9.2/bits/shared_ptr_base.h:149
#2  0x00000000005a3923 in std::__shared_count::~__shared_count (this=0x7fca6cff7478, __in_chrg=)
at /usr/include/c++/4.9.2/bits/shared_ptr_base.h:666
#3  0x00000000005a0d86 in std::__shared_ptr::~__shared_ptr (this=0x7fca6cff7470, __in_chrg=)
at /usr/include/c++/4.9.2/bits/shared_ptr_base.h:914
#4  0x00000000005a0dba in std::shared_ptr::~shared_ptr (this=0x7fca6cff7470, __in_chrg=) at /usr/include/c++/4.9.2/bits/shared_ptr.h:93
#5  0x00007fca898bfc98 in flux::CygnetHttpClient::::operator()(void) const (__closure=0x7fca6cff75c0)
at build/debug64/flux/plugins/restful/cygnet_http_client/cygnet_http_client.cc:274
Кто-нибудь знает, что произошло?

Подробнее здесь: https://stackoverflow.com/questions/793 ... lease-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»