我有一个执行大量处理的perl脚本。它使用来自此问题的已接受解决方案中的示例进行多线程处理:
How to limit the max number of parallel threads in perl
当它运行时,它似乎开始正确启动并运行线程..然后它抛出此错误并转储核心。
perl:posixio.c:342:px_rel:断言`pxp-> bf_offset< = offset&&偏移量< pxp-> bf_offset +(off_t)pxp-> bf_extent'失败。
我的问题......这是什么意思?发生了什么事?
答案 0 :(得分:1)
assert(EXPR)
抛出一个断言错误,这是一个C语言宏,如果它的参数计算结果为false,则会杀死该程序。 (虽然出于性能原因,assert
在非调试版本中是无操作的。)
这意味着所陈述的表达是错误的,它永远不应该。如果你想找出它为什么是假的,你就必须回溯。
当然,很有可能某人已经完成并修复了错误,因此您应该使用更新版本的Perl来尝试您的代码。 perlbrew
可以帮助您在本地安装新版本的Perl。 (别忘了-Dusethreads
!)