Boost logo

Boost :

Subject: [boost] [thread] TSS cleanup
From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2008-09-20 20:17:18


I would like to know if the storage created for
boost::thread_specific_ptr in the tss
specific code for win32 is free'd after the destruction of said
boost::thread_specific_ptr, or
if it stays until the end of the process.

For example:

for(int i = very_big_number;i--;i > 0)
  boost::thread_specific_ptr<int> p(new int);

To my knowledge, the pointer returned by new in this case is freed.
But does the int* that is created to store the pointer to new int is also
freed, or this program will get only bigger and bigger?

I'm using boost 1.36.
The boost in 1.34 did get bigger and bigger, and I modified to
use a map, which made the complexity bigger (log N), but
made it manageable to use spirit 1.8, which creates
boost::thread_specific_ptr and destroys a lot of them.

Thanks in advance,

Felipe Magno de Almeida

Boost list run by bdawes at, gregod at, cpdaniel at, john at