В общем, вот вывод при нормальной работе потоков:
$ ./rezult
Constructor started
Thread started
Thread finished
./libf2.so: f2 string
Thread started
Thread finished
./libf3.so: f3 string
Destructor started
Здесь вызывается одна и та же функция из двух библиотек, после чего
выводится изменённая в них строка.

А вот вывод, когда вторая библиотека зависает:
$ ./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...
zsh: killed     ./rezult

А вот вывод, когда во второй библиотеке просто выполняется sleep(300)
и поток с вызовом её функции отменяется:
$ ./rezult
Constructor started
Thread started
Thread finished
./libf2.so: f2 string
Thread started
Bad function, try to cancel
Try to join
thread was canceled
./libf3.so: f2 string
Destructor started

:-)

-- 
С уважением, Ринат Биков.
_______________________________________________
smoke-room mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/smoke-room

Ответить