PSD, мьютек в управляющие потоки
и крайний случай сделать его глобальным
сделай внутри CTrans флаг
в деструкторе
while(!complite_flag);
изменение флага в true
поставь перед выходом из complite
то же метод и без мьютексов.
или проверяй флаг из вне CTrans чтение/изменение флага должно быть тоже из вне и закрыто мьютексом который за пределами
CTrans c = new Ctrans;
{
boost::scoped_lock l(mutex_);
c->complite;
}
{
boost::scoped_lock l(mutex_);
if(c->check())
delete;
}
как-то так
или еще хранить какой-то объект который будет указывать на последний CTrans для которого вызва complite и вызывать деструктор толко для тех объектов для которых complite вызван опять же обращение к подобному указателю закрыть мьютексом