title: How to set the sa_mask in sigset_t?
body: <p>gcc (GCC) 4.6.0
      c89</p>
  
  <p>I have a signal handler declared like this:</p>
  
  <pre><code>   /* Setup signal handler */
      struct sigaction new_action;
      new_action.sa_handler = g_signal_handler;
      new_action.sa_flags = SA_ONSTACK;
  
      if(sigaction(SIGINT, &amp;new_action, NULL) == -1) {
          fprintf(stderr, "Failed to setup signal handlers.");
          return -1;
      }
  </code></pre>
  
  <p>When I was running my code through valgrind i.e. <code>valgrind --leak-check=full</code> it picked up the following error:</p>
  
  <pre><code>==5206== Syscall param rt_sigaction(act-&gt;sa_mask) points to uninitialised byte(s)
  ==5206==    at 0x347A435455: __libc_sigaction (in /lib64/libc-2.14.so)
  </code></pre>
  
  <p>So aftering looking at the man pages I decided to set like this, just to test with:</p>
  
  <p>new_action.sa_mask = SA_NODEFER;</p>
  
  <p>However, that just give me the following error:</p>
  
  <pre><code>error: incompatible types when assigning to type ‘__sigset_t’ from type ‘int’
  </code></pre>
  
  <p>Many thanks for any suggestions,</p>