Обнаружен этот деструктор в кодовой базе, которую я отлаживаю.
ManagerImpl::~ManagerImpl() {
// don't go away if some thread is still hitting us
boost::unique_lock<boost::mutex> l(m_mutex);
}
Действительно ли он служит какой-либо полезной цели в многопоточной программе?Это похоже на kludge.
Я предполагаю, что идея состоит в том, чтобы отложить уничтожение, если другой поток вызывает функцию, которая блокирует мьютекс, но эффективно ли это при этом?Сегфаултс ElectricFence заставил бы меня поверить в обратное.