lua-users home
lua-l archive

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

I can't create more than 509 tasks, i.e. 510 in total

The real error is "EMFILE 24  /* Too many open files */"
trying to create a pipe inside "QueCreate"
See your Linux limit with "ulimit -n".

Yep, that's it. Sorry about the (uninformed) false alarm.

I increased the open files limit to 4096 and compiled with PTHREAD_STACK_SIZE set to 1m -- now I never see the error -3 (can't create queue, i.e. pipe), though I get an error -4 (out of memory) at a whisker below 3000 tasks, as expected.

I'm not sure how useful my testing is, since the concurrency involved and the behaviour of the tasks is very artificial. But what used to segfault reliably (if that doesn't sound like an oxymoron :-) now seems to work correctly, FWIW.

Out of interest, what made you drop TASK_SLOTS_STEP from 256 to 16? It means a whole lot of small heap objects when there are 100s or 1000s of tasks. Doesn't really matter on Lin/Win...just wondering. (And anyone who doesn't like it can change it.)