>>thread create err: 11
>>
>>В чем может быть причина?
>
>Возможно, что strerror(11) подскажет вам больше. тогда уж
strerror(4);)
А вообще man pthread_create выдает следующие описание ошибки:
EAGAIN
Insufficient resources to create another thread, or a system-imposed limit on the number of threads was encountered. The latter case may occur in two ways: the RLIMIT_NPROC soft resource limit (set via setrlimit(2)), which limits the number of process for a real user ID, was reached; or the kernel's system-wide limit on the number of threads, /proc/sys/kernel/threads-max, was reached.
1. Ресурсы хватит точно, перед запуском проги убил 5 ненужных процессов.
2. /proc/sys/kernel/threads-max - файлик проверил - там 128.
3. Проверил RLIMIT_NPROC:
struct rlimit rlp;
int res = getrlimit(RLIMIT_NPROC, &rlp);
printf("getrlimit result: %d\n", res);
printf("soft limit: %d\n", rlp.rlim_cur);
printf("hard limit: %d\n", rlp.rlim_max);
Результат:
getrlimit result: 0
soft limit: 64
hard limit: 64
Почему же все-таки не получается создать поток?