style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40547 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2011-02-17 21:28:33 +00:00
parent c9f088c2d1
commit d13211ac40
@@ -15,49 +15,54 @@ static bool blocking[4];
static pthread_key_t self; static pthread_key_t self;
static void suspendLoop(int *i) { static void
sigjmp_buf env; suspendLoop(int *i) {
sigset_t mask; sigjmp_buf env;
sigset_t mask;
sigsetjmp(env, false); sigsetjmp(env, false);
state[*i] = false; state[*i] = false;
sigfillset(&mask); sigfillset(&mask);
sigdelset(&mask, SIGUSR1); sigdelset(&mask, SIGUSR1);
sigdelset(&mask, SIGTERM); sigdelset(&mask, SIGTERM);
while(state[*i] == false && blocking[*i] == false) while (state[*i] == false && blocking[*i] == false)
sigsuspend(&mask); sigsuspend(&mask);
state[*i] = true; state[*i] = true;
} }
static void suspendHandler(int sig) { static void
int *i = (int*)pthread_getspecific(self); suspendHandler(int sig) {
suspendLoop(i); int *i = (int*)pthread_getspecific(self);
suspendLoop(i);
} }
static void initialiseSignals()
static void
initialiseSignals()
{ {
struct sigaction act; struct sigaction act;
sigset_t mask; sigset_t mask;
act.sa_handler = suspendHandler; act.sa_handler = suspendHandler;
sigemptyset(&act.sa_mask); sigemptyset(&act.sa_mask);
act.sa_flags = 0; act.sa_flags = 0;
sigaction(SIGUSR1, &act, NULL); sigaction(SIGUSR1, &act, NULL);
sigemptyset(&mask); sigemptyset(&mask);
sigaddset(&mask, SIGQUIT); sigaddset(&mask, SIGQUIT);
sigaddset(&mask, SIGINT); sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGPIPE); sigaddset(&mask, SIGPIPE);
sigprocmask(SIG_BLOCK, &mask, NULL); sigprocmask(SIG_BLOCK, &mask, NULL);
} }
static void self_suspend(int* i) static void
self_suspend(int* i)
{ {
sigset_t mask; sigset_t mask;
@@ -77,7 +82,9 @@ static void self_suspend(int* i)
} }
void *threadStart(void *arg) { void *
threadStart(void *arg)
{
int *i = (int*)arg; int *i = (int*)arg;
pthread_setspecific(self, i); pthread_setspecific(self, i);
@@ -94,7 +101,8 @@ void *threadStart(void *arg) {
} }
/*void suspendAllThreads() /*void
suspendAllThreads()
{ {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
blocking[i] = false; blocking[i] = false;
@@ -111,7 +119,8 @@ void *threadStart(void *arg) {
void resumeAllThreads() void
resumeAllThreads()
{ {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
blocking[i] = true; blocking[i] = true;
@@ -130,14 +139,15 @@ void resumeAllThreads()
} }
int main(int argc, char **argv) int
main(int argc, char **argv)
{ {
initialiseSignals(); initialiseSignals();
pthread_key_create(&self, NULL); pthread_key_create(&self, NULL);
pthread_attr_init(&attributes); pthread_attr_init(&attributes);
pthread_attr_setdetachstate(&attributes, PTHREAD_CREATE_DETACHED); pthread_attr_setdetachstate(&attributes, PTHREAD_CREATE_DETACHED);
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
if (pthread_create(&tid[i], &attributes, threadStart, &i) != 0) if (pthread_create(&tid[i], &attributes, threadStart, &i) != 0)
@@ -152,3 +162,4 @@ int main(int argc, char **argv)
resumeAllThreads(); resumeAllThreads();
printf("resuming all threads done\n"); printf("resuming all threads done\n");
} }