PTHREAD_MUTEX_INITIALIZER 사용법에 대해서..
글쓴이: mushim / 작성시간: 수, 2003/04/30 - 3:22오후
pthread_mutex_t mymutex=PTHREAD_MUTEX_INITIALIZER;
이런 식으로 mutex 를 초기화 하는것은 상관없는 데,
mymutex=PTHREAD_MUTEX_INITIALIZER;
다시 초기화를 하기 위해서 위와 같이 하면 parse error 를 내어 버리네요.
찾아보니, /usr/include/pthread.h 에서 아래와 같이 정의되어 있더군요.
#define PTHREAD_MUTEX_INITIALIZER \ {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_INITIALIZER}
한번 선언된 mutex 를 PTHREAD_MUTEX_INITIALIZER 를 이용해서 초기화 할 수 없나요?
Forums:
자문자답이 되어 버렸군요.
저렇게 쓰는게 C 문법에 맞지 않는것 같군요.
전역 변수로 초기화 mutex 를 만들고, memcpy 하면 되는군요.
보통 다이나믹하게 init할땐 이렇게 하는군요.[code:1]
보통 다이나믹하게 init할땐 이렇게 하는군요.
앞마당 먹고 시작한 저그의 8할은 뮤탈 테크를 먼저 탄다. 하지만 나머지 2할때문에 항상 스켄이 모자란다. - _-;
pthread_mutex_t가 structure로 선언 되있기때문에..
INITIALIZER사용은 선언과 함께 초기화 할때만 쓰세요.
(pthread 구현마다 다를수 있겠지만요..)
그리고, posix표준화 준수 정도에 따라, INITIALIZER를 못쓰는 경우가 있다더군요.
그래서 그냥, pthread_mutex_init를 하시는 것이 좋다고 알고 있습니다.
PTHREAD_MUTEX_INITIALIZER 대신에 pthread_mu
PTHREAD_MUTEX_INITIALIZER 대신에 pthread_mutex_init() 를 사용해서 초기화하시면 됩니다.
s(˘∼˘*)z,·´″"`°³о$ √(´∀`√)... (˘ヘ˘ㆀ)a
댓글 달기