我開發了一個程序,它在開始時創建一個線程。然後我想在線程運行時用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