我开发了一个程序,它在开始时创建一个线程。然后我想在线程运行时用pthread_cancel()
杀死线程。pthread_cancel()崩溃我的程序
如果我这样做,我会崩溃。这次崩溃并不总是被重现。有些时候程序避免了崩溃。
我看到一些pthread_cancel()
可能导致崩溃,如果取消的线程正在运行系统调用。这是真的吗?
的dmesg显示以下错误
myprogramd[1965]: segfault at c ip b76cdef3 sp bfcd5780 error 4 in libpthread-0.9.30.1.so[b76c6000+a000]
你可以张贴一些代码? – CCoder
这是很大的源代码。但我怀疑这种崩溃是一个熟悉的崩溃,并导致'pthread_cancel()'。我认为如果取消的线程正在运行系统调用,'pthread_cancel()可能会导致崩溃 – MOHAMED
在调试器中运行该程序,以便可以捕获*它在哪里崩溃。这比仅仅提出随机理论要好。 – unwind