libcurl 多线程使用注意事项
来源:互联网 发布:战网数据查询 编辑:程序博客网 时间:2024/05/16 01:38
1、问题来源,多线程使用Libcurl导致程序跑一段时间后自己退出,没有明显的异常。找不到合适的BUG。
最后通过查看资料和网上找的一些文章,发现,原来是信号处理的问题:
CURLOPT_NOSIGNAL
Pass a long. If it is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process.This option is mainly here to allow multi-threaded unix applications to still set/use all timeout options etc, without risking getting signals.(Added in 7.10)
If this option is set and libcurl has been built with the standard name resolver, timeouts will not occur while the name resolve takes place. Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.
Setting CURLOPT_NOSIGNAL to 1 makes libcurl NOT ask the system to ignore SIGPIPE signals, which otherwise are sent by the system when trying to send data to a socket which is closed in the other end. libcurl makes an effort to never cause such SIGPIPEs to trigger, but some operating systems have no way to avoid them and even on those that have there are some corner cases when they may still happen, contrary to our desire.
就是当多个线程都使用超时处理的时候,同时主线程中有sleep或是wait等操作。如果不设置这个选项,libcurl将会发信号打断这个wait从而导致程序退出。
所以,在使用的时候把这个选项设置成1就可以了.
curl_setopt(curl, CURLOPT_NOSIGNAL, 1L);
2、关于libcurl库的初始化和关闭:curl_global_init()和curl_global_cleanup()
这两个函数并不是线程安全的。所以只能在主线程中进行一次的初始化和清除。
虽然这个不是一定就会有问题,但是如果不这样处理还是有概率发生的。
- libcurl 多线程使用注意事项
- libcurl 多线程使用注意事项
- libcurl 多线程使用注意事项
- libcurl 多线程使用注意事项(转载)
- libcurl 多线程使用注意事项(补充)——HTTPS,openssl多线程使用加锁
- 关于使用libcurl的注意事项
- 关于使用libcurl的注意事项
- libcurl 使用的几个注意事项
- libcurl 使用的几个注意事项
- 关于使用libcurl的注意事项
- 关于使用libcurl的注意事项
- 关于使用libcurl的注意事项
- 多线程使用libcurl的坑
- IOS中是使用libcurl注意事项
- libcurl多线程
- 多线程使用注意事项
- 多线程join使用注意事项
- libcurl基本使用 -- libcurl
- 李践-时间管理
- URL 地址超过边界 Javascript 解决方法
- 一些经验(五)
- sicily 1898 && 2608 Tree
- c3dl教程第一课:课后练习,分析
- libcurl 多线程使用注意事项
- bcb的ShowModal
- Adapter (C++实现 )
- 以悲奇的形式结束 goole code jam 之旅~~~~
- Lucene3 分词
- 基础加强之代理的原理
- 14个简单饮食习惯让你受益终生
- 书暖童年智启明天 志愿者捐赠图书活动启动
- 注册表文件知识