AIX에서 공유메모리 mutex 데드락 막는 방법없을까요??
글쓴이: xian / 작성시간: 목, 2009/03/05 - 5:46오후
솔라리스에서는 아래와 같이 하면 어떤 프로세스가 공유메모리의 뮤텍스에 락을 걸고 죽어도
자동으로 풀리기 때문에 다른 프로세스가 락을 풀고 바로 사용이 가능했습니다.
+----------------------
mutex_init(pmutex, USYNC_PROCESS_ROBUST, NULL);
+----------------------
그런데 AIX에서는 아래 같이 해주면 뮤텍스를 공유메모리에 넣고 여러 프로세스가 사용하는 것은 가능한데
어떤 특정 프로세스가 락을 걸어놓고 죽으면 자동으로 풀리지를 않더군요... 그래서 심각한 문제가 발생됩니다.
+----------------------
pthread_mutexattr_init(&mutex_attr);
pthread_mutexattr_setpshared(&mutex_attr, PTHREAD_PROCESS_SHARED);
pthread_mutexattr_settype(&mutex_attr, PTHREAD_MUTEX_ERRORCHECK);
pthread_mutex_init(pmutex, &mutex_attr);
+----------------------
[질문]
AIX 공유메모리에 뮤텍스 넣어놓고 사용하다 특정 프로세스가 락을 걸어놓고 죽으면 자등오르 풀리게하는 방법이 없을까요?
개발의 고수님들 답변 부탁드립니다.
Forums:
댓글 달기