linux – 为什么我的线程Perl脚本会出现段错误?
发布时间:2021-01-11 18:03:16 所属栏目:Linux 来源:网络整理
导读:我正在编写一个curses脚本,它需要在处理SIGINT后进行清理,以便将终端恢复到原始状态. 启用信号处理程序时,我得到一个段错误. 为了支持,我删除了所有的curses代码以解决问题. 码: #!/usr/bin/env perluse strict;use warnings;use threads;sub cleanup { exi
我正在编写一个curses脚本,它需要在处理SIGINT后进行清理,以便将终端恢复到原始状态. 启用信号处理程序时,我得到一个段错误. 为了支持,我删除了所有的curses代码以解决问题. 码:
示例错误跟踪(90%的时间段为segfaults):
眼镜: >线程1.72 初步印象: 我认为当自定义信号处理程序获取控制权时会出现问题.这会以某种方式阻止创建下一个线程,从而导致段错误. Perl的默认SIGINT处理程序是否运行特殊代码以安全地结束线程创建的评估?如果是这样,我想解决方案是将copypasta引入自定义处理程序. 最佳答案 revision history for thethreads module包含:
这表明在早于1.73的版本中,在创建和销毁线程期间存在已知的信号处理问题.升级您的线程模块. (编辑:ASP站长) 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
未处理完善
-
无相关信息
最新更新