perl线程核心转储

时间:2013-05-28 05:34:04

标签: multithreading perl

我有一个执行大量处理的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'失败。

我的问题......这是什么意思?发生了什么事?

1 个答案:

答案 0 :(得分:1)

assert(EXPR)抛出一个断言错误,这是一个C语言宏,如果它的参数计算结果为false,则会杀死该程序。 (虽然出于性能原因,assert在非调试版本中是无操作的。)

这意味着所陈述的表达是错误的,它永远不应该。如果你想找出它为什么是假的,你就必须回溯。

当然,很有可能某人已经完成并修复了错误,因此您应该使用更新版本的Perl来尝试您的代码。 perlbrew可以帮助您在本地安装新版本的Perl。 (别忘了-Dusethreads!)