[질문] AIX에서 POSIX semaphore 지원여부
글쓴이: bizzare / 작성시간: 토, 2006/06/10 - 4:48오후
POSIX semaphore를 이용하여 어플리케이션을 만들었습니다.
그런데, 다른 플랫폼은 다 정상작동하는데,
AIX에서는 sem_init을 호출했을 때, 에러가 리턴되더군요.
구글을 통해 검색해보니, AIX에서는 POSIX semaphore를 지원하지 않는다는 글을 발견했는데, 사실인가요?
1) 사실이 아니라면
어떤 세팅을 해줘야 하나요? 컴파일 및 링크는 모두 잘되고, 단지 실행시간에 에러가 리턴되고 있습니다.
2) 만일 사실이라면
AIX에서는 semaphore를 어떻게 구현해야 하나요?
제가 사용하고 있는 기능은 initialize, destroy, lock, unlock, 이렇게 4가지 입니다.
Forums:
Mutex를 이용하여 처리했습니다.
정말 깨끗하고 멋진 프로그램을 짜고 싶습니다.
정말 깨끗하고 멋진 프로그램을 짜고 싶습니다.
Mutex를 이용하여 처리했습니다.
Semaphore를 쓰려고 한 용도는 Mutex를 이용하여 구현할 수 있을 것 같아서 그렇게 처리했습니다.
(다행히 AIX에서 Mutex함수들은 있더군요. (pthread함수라서 그런 듯. ^^)
Semaphore용도의 mutex를 정의하고
Semaphore의 Lock함수 래퍼 함수에서
Mutex.lock();
Mutex.lock();
Mutex.unlock();
Semaphore의 UnLock함수 래퍼함수에서
Mutex.unlock();
과 같이 코드를 했습니다.
결국 Semaphore.lock()을 하게 되면
첫번 째, Mutex.lock();호출 후, 2번째 Mutex.lock()에서 대기상태로 들어갈테고
Unlock();을 하게 되면 2번째에서 대기하던 스레드가 계속 진행되게 되죠. (이 때 2번째 mutex도 unlock이 되고요)
뭐 이렇게 하니 제가 의도한 동작이 되네요.
정말 깨끗하고 멋진 프로그램을 짜고 싶습니다.
정말 깨끗하고 멋진 프로그램을 짜고 싶습니다.
댓글 달기