У меня проблема с функцией клона в том, что она вызывает ошибку сегментации после 9-го вызова. Программа работает нормально, пока я не использую 9+ потоков.
вот мой призыв клонировать:
void **child_stack = (void **) malloc(SIGSTKSZ);
clone (func,
(child_stack + SIGSTKSZ),
CLONE_VM | CLONE_FILES | CLONE_PARENT_SETTID,
(void *) argsForFunc,
&pid);
Я использую клон, а не какую-либо библиотеку потоков более высокого уровня, такую как pthreads.
Если это поможет, я получаю ошибку при использовании GDB:
Program received signal SIGSEGV, Segmentation fault.
clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:66
66 movq %rcx,8(%rsi)
Current language: auto; currently asm