2015-01-15 4 views
1

리눅스 장치 드라이버 제 3 판에서 뮤텍스는 init_MUTEX(sem)을 통해 세마포어로 구현됩니다. 그러나 커널 3.2.X와 같은 새로운 커널은이 기능을 제거하고 뮤텍스 (mutex) 지원을 추가했습니다.커널 개발에서 뮤텍스에 대해 down_interruptible()과 유사한 함수가 있습니까?

하지만 코드가 발생할 때

if (down_interruptible(&sem)) 
    return -ERESTARTSYS; 

내가 보장 할 수 뮤텍스이 방법의 대응이 있는지. 즉, 어떻게 특정 뮤텍스에서 대기를 중단 할 수 있습니까?

답변

1

이 뮤텍스에 해당하는 메소드가 있는지 여부를 확인할 수는 없습니다. 즉, 어떻게 특정 뮤텍스에서 대기를 중단 할 수 있습니까?

예, 뮤텍스는 최신 커널의 세마포를 대체하는 비관적 잠금입니다. 당신은, 뮤텍스, 사용을 사용하여 interuptable 잠금을하려는 경우 :

#include <linux/mutex.h> 
:

lock_interruptable() 

은 헤더 파일을 참조하십시오