Podría alguien decirme si la biblioteca del hilo de refuerzo se escapa. Me parece que sí: Google dice que debo compilar con thread boost y pthread que estoy haciendo y que en la versión 1.40 este problema se ha solucionado pero sigo teniendo fugas. Tenga en cuenta que esto compilará bien, pero se detectan fugas.Boost thread Leakage C++
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
void t1(){}
int main(void){
boost::thread th1(t1);
th1.join();
return 1;
}
Con Valgrind me sale el siguiente resultado
HEAP SUMMARY:
==8209== in use at exit: 8 bytes in 1 blocks
==8209== total heap usage: 5 allocs, 4 frees, 388 bytes allocated
==8209==
==8209== 8 bytes in 1 blocks are still reachable in loss record 1 of 1
==8209== at 0x4024F20: malloc (vg_replace_malloc.c:236)
==8209== by 0x4038CCB: boost::detail::get_once_per_thread_epoch() (in /usr/local/lib/libboost_thread.so.1.42.0)
==8209== by 0x40329D4: ??? (in /usr/local/lib/libboost_thread.so.1.42.0)
==8209== by 0x4032B26: boost::detail::get_current_thread_data() (in /usr/local/lib/libboost_thread.so.1.42.0)
==8209== by 0x4033F32: boost::thread::join() (in /usr/local/lib/libboost_thread.so.1.42.0)
==8209== by 0x804E7C3: main (testboost.cpp)
==8209==
==8209== LEAK SUMMARY:
==8209== definitely lost: 0 bytes in 0 blocks
==8209== indirectly lost: 0 bytes in 0 blocks
==8209== possibly lost: 0 bytes in 0 blocks
==8209== still reachable: 8 bytes in 1 blocks
==8209== suppressed: 0 bytes in 0 blocks
También probé con el código que aparece en la siguiente dirección: http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html Sigue siendo el mismo problema.
Eche un vistazo a src/pthread/Once.cpp en las fuentes de impulso. Está bastante claro que no tiene fugas (basta con buscar las definiciones de las funciones de la biblioteca pthread que utiliza). – Mankarse
Usando 'std :: thread' en lugar de boost, el código ni siquiera se ejecuta para mí; termina con una excepción 'std :: system_error'. –
simplemente pruebe el código en el enlace de arriba y probablemente verá la fuga de valgrind –