sys/msg.h 사용 시 멀티스레드 관련
글쓴이: anylove20 / 작성시간: 일, 2007/07/29 - 2:09오전
안녕하세요
현재 스레드간의 통신을 위해 sys/msg.h 메시지 큐를 이용하고 있습니다.
문제는 여러 스레드에서 msgsnd() and msgrcv() 함수를 호출하는데요.
두 함수들이 thread safe 하다는 얘기는 어디에도 나와있지 않던데...
혹시 문제가 될수 있는지요.
두번째 질문은 위와 같은 상황에서 가끔 msgsnd() and msgrcv() 함수 호출 시 errno=22(Invalid Argument)가 발생하는데요
이건 메시지 구조체가 잘못되서 나는 에러인지요
이런 에러가 정말 가끔씩 발생해서 메시지 구조체에 문제가 있다는 생각은 안들어서요
참고로 메시지 구조체는
typedef union
{
char type[4];
void *ptr;
}MsgBuf;
입니다.
메뉴얼을 보면 mtype 으로 long형을 쓰던데. 많은 예제들이 꼭 그렇게만 쓰는건 아닌거 같더라구요
뭐가 문제일까요??
답변 부탁드립니다.
Forums:

