lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Duck escribió:
Is this intended to fix the "more than 255 tasks segfault?"

It seems to fix it when there are N tasks each just blocking indefinitely. (This code would reliably segfault under 1.6.0 for N>= 255.)

I have code which creates N tasks which sort M random itmes P times. As long as I'm careful not to set M so high that I blow out the C stack of the tasks, I can use almost any combination of M, N and P as long as N <= 255. So sorting 10,000 items 50 times in 255 concurrent tasks is fine, if somewhat slow :-)

With N >= 256, the code always segfaults, even with, say, 10 items sorted 10 times, or even 1 items sorted 1 time.

FWIW I set LUATASK_PTHREAD_STACK_SIZE to 2097152 (2m) in my makefile.

Of course if this version isn't intended to address the "255" issue then ignore this email -- though note that the "just blocking" case above always segfaulted at 256 with 1.6.0 yet doesn't now. Though this could be down to the fact that the binary is rebuilt and thus differently laid out...

Please: change TASK_SLOTS_STEP to 384 (ltask.c:49) and check again with N between 255 and 380. Tell me if the segfault is gone.