2017-07-24 101 views
2

GNUTLS的版本是3.5。我想使用一個子線程與遠程對等方進行握手。 在我的子線程中,我只使用gnutls_handshake()GNUTLS中的線程安全

  1. 在父線程,我可以用pthread_cancel()取消子線程安全的,無論當前握手狀態的?

  2. 如果我已使用pthread_cleanup_push/pthread_cleanup_pop, 註冊了pull/pull_timeout/push功能,我可以取消子線程嗎?

回答

0

我已經通過電子郵件發送尼科斯Mavrogiannopoulos(當前GNUTLS的維護者),他的回答如下:

GNUTLS功能從來沒有設計成並行線程取消點。我 沒有想到這麼多,但我相信你主要關心的是內存 泄漏對不對?這可能是因爲如果您在另一個 線程中釋放會話,它可能正常工作;儘管您可能必須爲此創建壓力測試 以驗證這是可能的。