요즘 회사에서 쓰레드(Thread)로 프로그램을 만드록 있는데 테스트 때는 괜찮던 프로그램이 실제 적용해보고 나니 pthread_create()
함수 오류로 문제를 일으키더군요.
pthread_create()
가 반환한 값은 ENOMEM
.
메모리가 없다고 하길래 메모리 누수(leak)가 있을 것 같아 코드를 검토했으나 못 찾았습니다.
혹시나 하는 마음에 인터넷에서 열심히 찾아보니 누군가 관련있어 보이는 글 하나를 올려놓았더군요. 참고해서 테스트 해보니 역시 그것이 원인이었습니다.
detach 하지 않은 쓰레드는 적당한 join이 없다면 만들 수 있는 개수에 제한이 있었습니다. 테스트 해본 바로는 300 개 정도까지 되더군요.