首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vmime、libgnutls和libgcrypt问题?断言失败!

vmime、libgnutls和libgcrypt问题?断言失败!
EN

Stack Overflow用户
提问于 2010-10-20 19:55:19
回答 1查看 576关注 0票数 2

我正在用C++开发一个应用程序来检查用户的电子邮件帐户。此应用程序使用vmime库来执行与POP3/IMAP/SMTP协议相关的处理。

我将应用程序设计为连续工作。所以,它必须足够稳定!

有时,应用程序会突然停止给出这个奇怪的错误:

代码语言:javascript
复制
ath.c:193: _gcry_ath_mutex_lock: Assertion `*lock == ((ath_mutex_t) 0)' failed.
Aborted

我知道vmime使用libgnutls,这个使用libgcrypt。

有人能帮助解决这个错误吗?

有关更多信息,该应用程序是多线程的。我使用的是vmime-0.9.0、libgcrypt-1.4.4和libgnutls-2.8.5。

非常感谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-21 22:19:20

在多线程应用程序的情况下,vmime似乎有一个与使用gnutls相关的bug。我按照下面页面中gnutls的文档所说的做了:

http://www.gnu.org/software/gnutls/manual/gnutls.html#Multi_002dthreaded-applications

我只是加了一行:

代码语言:javascript
复制
gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);

在该行之前:

代码语言:javascript
复制
gnutls_global_init();

在文件中:

代码语言:javascript
复制
net_tls_TLSSession.cpp

并重建了vmime。当然,我还包含了文档示例中显示的所需的头文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3977488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档