标签为 "段错误" 的存档

libcurl 的 Segmentation fault

前不久在使用libcurl写多线程下载时候,出现莫名其妙的段错误。
问题出现在使用libcurl开多线程从任务队列下载文件后,因为下载队列空,所有下载线程锁在pthread_mutex_lock。这时,程序空闲几秒后会因为出现Segmentation fault退出。反复看我的代码也没看出什么问题来,最后竟然在讲libcurl基础的地方找到了答案,真惭愧,基础很重要啊!

原来libcurl在configure默认配置编译的情况下,它是使用alarm+siglongjmp实现域名解析超时。当多个线程都使用超时处理的时候,同时主线程中有sleep或是wait等操作。libcurl将会发信号打断这个wait从而导致程序退出。so~,坑爹啊!给条警告能死啊?
阅读更多…