B>//thread B:
B>~someclass(){
B> mytype* tmptpr=nash_shared_ptr.get();
B> sem_post(nash_shared_ptr.get()->semaphore); // очень скользко — смотрим ниже
B> sem_post(nash_shared_ptr.get()->semaphore); // для надежности
B> pthread_mutex_lock(tmpptr->ptr_lock); // очень надеемся, что мы заблокировали мьютекс сами, а не попали в очередной дедлок ...
// ошибку допустил, исправляю:
pthread_mutex_lock(tmpptr->ptr_lock); // unlock before destroy.
B> pthread_mutex_destroy(tmpptr->ptr_lock);
B>}
B>// умираем , и nash_shared_ptr оходит в мир иной вместе с прощальной песней деструктора
B>Похоже у меня проблема где-то на генетическом уровне
суть проблемы правда от этого не изменилась.