2017-07-24 100 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功能从来没有设计成并行线程取消点。我 没有想到这么多,但我相信你主要关心的是内存 泄漏对不对?这可能是因为如果您在另一个 线程中释放会话,它可能正常工作;尽管您可能必须为此创建压力测试 以验证这是可能的。