2017-10-03 14 views
1

뮤텍스/조건 변수가 있다고 가정합니다. 내가 초기화 (pthread_mutex_init/pthread_cond_init)하지만 사용하지 마십시오 (잠금 작업 없음, 신호 없음/대기).사용되지 않는 pthread 뮤텍스 또는 조건 변수는 어떤 리소스를 할당합니까?

이러한 사용되지 않은 개체는 점유하는 메모리 이외의 다른 리소스를 할당합니까? POSIX 명시 적으로 이러한 기능으로 인해 자원합니다 (EAGAINENOMEM 오류 코드)의 부족,도 리눅스의 glibc에 실패 할 수 있다는 것을 고려 있지만

답변

1

(나는이 점에서 리눅스와 OSX의 행동에 관심이 있어요) pthread_mutex_init() 또는 pthread_cond_init()의 OSX 구현도 리소스를 할당하지 않습니다.

pthread_mutex_init()의 Linux glibc 구현은 을 참조하십시오. 소스 코드를 직접 검사하여 확인할 수 있습니다.

pthread_cond_init()의 Linux glibc 구현은 nptl/pthread_cond_init.c입니다 (기능 __pthread_cond_init() 참조). pthread_mutex_init()

OSX에 구현하고 libpthread/internal.h (기능 pthread_mutex_init()_pthread_mutex_init() 참조) (매크로 _PTHREAD_LOCK_INIT 참조) libpthread/pthread_mutex.c이다. pthread_cond_init()

OSX에 구현 (pthread_cond_init() 기능과 _pthread_cond_init() 참조) libpthread/pthread_cond.c이다.

+0

고마워요! 나는 이것들을 직접 확인해 보았고 실제로 이것들이 어떤 자원을 할당하지 않는 것으로 보인다. – geza