В общем, вместо SIGKILL нужно было посылать SIGTERM :-). $ ./rezult Constructor started Thread started Thread finished ./libf2.so: f2 string Thread started Bad function, try to cancel Try to join Function not joined! I'm died... thread wasn't canceled ./libf3.so: f2 string Destructor started Всем спасибо за внимание :-) -- С уважением, Ринат Биков.