Согласно моему руководству для sysconf
на моем Mac OSX 10.7.X:
Если вызов sysconf () не выполнен, возвращается -1 и значение errno устанавливается соответствующим образом. В противном случае, если переменная связана с функциональностью, которая не поддерживается, возвращается -1 и значение errno не изменяется. В противном случае возвращается текущее значение переменной.
Под Linux это отличается:
Если имя недопустимо, возвращается -1 и для errno устанавливается значение EINVAL. В противном случае возвращаемое значение является значением системного ресурса и значение errno не изменяется. В случае опций возвращается положительное значение, если запрашиваемая опция доступна, и -1, если ее нет. В случае ограничений -1 означает отсутствие определенного предела.
Похоже, что _SC_THREAD_THREADS_MAX
не является допустимой переменной sysconfig в этой архитектуре или, возможно, нет ограничений. Или, может быть, есть другое определение для -1
на других архитектурах. Вам придется проверить руководство по каждой архитектуре, которую вы пытаетесь заставить работать.
Если _SC_THREAD_THREADS_MAX
недопустимо, вы можете попробовать процессы вместо потоков. Может быть, есть настройка макс процессов, что также означает макс потоков.