Mercurial > hg > CbC > CbC_gcc
view libgo/misc/cgo/test/sigprocmask.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line source
// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !windows #include <signal.h> #include <stdlib.h> #include <pthread.h> #include <stdio.h> #include <unistd.h> extern void IntoGoAndBack(); int CheckBlocked() { sigset_t mask; sigprocmask(SIG_BLOCK, NULL, &mask); return sigismember(&mask, SIGIO); } static void* sigthreadfunc(void* unused) { sigset_t mask; sigemptyset(&mask); sigaddset(&mask, SIGIO); sigprocmask(SIG_BLOCK, &mask, NULL); IntoGoAndBack(); return NULL; } int RunSigThread() { pthread_t thread; int r; r = pthread_create(&thread, NULL, &sigthreadfunc, NULL); if (r != 0) return r; return pthread_join(thread, NULL); }