File:  [DVB] / dietlibc / libpthread / pthread_sigmask.c
Revision 1.3: download - view: text, annotated - select for diffs
Mon Aug 18 17:32:53 2003 UTC (20 years, 9 months ago) by sanjiyan
Branches: MAIN
CVS tags: HEAD
- checkin of the new libpthread
- add confstr

#include <signal.h>

#include <pthread.h>
#include "thread_internal.h"

int pthread_sigmask(int how, const sigset_t*newset, sigset_t *oldset) {
  sigset_t mask;
  if (newset) {
    mask=*newset;
    switch (how) {
    case SIG_SETMASK:
      sigaddset(&mask,PTHREAD_SIG_RESTART);
      sigdelset(&mask,PTHREAD_SIG_CANCEL);
      break;
    case SIG_BLOCK:
      sigdelset(&mask,PTHREAD_SIG_CANCEL);
      break;
    case SIG_UNBLOCK:
      sigdelset(&mask,PTHREAD_SIG_RESTART);
      break;
    }
    newset=&mask;
  }
  return (sigprocmask(how,newset,oldset)==-1)?_errno_:0;
}

LinuxTV legacy CVS <linuxtv.org/cvs>