NAME

pthread_sigqueue - 스레드에게 시그널과 데이터 큐잉 하기

SYNOPSIS

#include <signal.h>
#include <pthread.h>

int pthread_sigqueue(pthread_t thread, int sig,
                     const union sigval value);

-pthread로 컴파일 및 링크.

glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):

pthread_sigqueue():
_GNU_SOURCE

DESCRIPTION

pthread_sigqueue() 함수는 sigqueue(3)와 비슷한 일을 수행하되 프로세스에게 시그널을 보내는 게 아니라 호출 스레드와 같은 프로세스 내의 스레드에게 시그널을 보낸다.

thread 인자는 호출자와 같은 프로세스 안에 있는 스레드의 ID이다. sig 인자는 보낼 시그널을 나타낸다. value 인자는 시그널에 동반시킬 데이터를 나타낸다. 자세한 내용은 sigqueue(3)를 보라.

RETURN VALUE

성공 시 pthread_sigqueue()는 0을 반환한다. 오류 시 오류 번호를 반환한다.

ERRORS

EAGAIN
큐에 넣을 수 있는 시그널 개수 한계에 도달했다. (자세한 내용은 signal(7)을 보라.)
EINVAL
sig가 유효하지 않다.
ENOSYS
이 시스템에서 pthread_sigqueue()를 지원하지 않는다.
ESRCH
thread가 유효하지 않다.

VERSIONS

glibc 2.11에서 pthread_sigqueue() 함수가 처음 등장했다.

ATTRIBUTES

이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.

인터페이스 속성
pthread_sigqueue() 스레드 안전성 MT-Safe

CONFORMING TO

이 함수는 GNU 확장이다.

NOTES

glibc의 pthread_sigqueue() 구현은 NPTL 스레딩 구현 내부에서 쓰는 실시간 시그널들 중 하나를 보내려고 시도하면 오류(EINVAL)를 내놓는다. 자세한 내용은 nptl(7)을 보라.

SEE ALSO

rt_tgsigqueueinfo(2), sigaction(2), pthread_sigmask(3), sigqueue(3), sigwait(3), pthreads(7), signal(7)


2021-03-22