Back to index

glibc  2.9
hurd-raise.c File Reference
#include <hurd.h>
#include <hurd/signal.h>
#include <hurd/msg.h>
#include <setjmp.h>

Go to the source code of this file.


void _hurd_raise_signal (struct hurd_sigstate *ss, int signo, const struct hurd_signal_detail *detail)

Function Documentation

void _hurd_raise_signal ( struct hurd_sigstate ss,
int  signo,
const struct hurd_signal_detail detail 

Definition at line 29 of file hurd-raise.c.

  if (ss == NULL)
      ss = _hurd_self_sigstate ();
      __spin_lock (&ss->lock);

  /* Mark SIGNO as pending to be delivered.  */
  __sigaddset (&ss->pending, signo);
  ss->pending_data[signo] = *detail;

  __spin_unlock (&ss->lock);

  /* Send a message to the signal thread so it will wake up and check for
     pending signals.  This is a generic "poll request" message (SIGNO==0)
     rather than delivering this signal and its detail, because we have
     already marked the signal as pending for the particular thread we
     want.  Generating the signal with an RPC might deliver it to some
     other thread.  */
  __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());

Here is the call graph for this function:

Here is the caller graph for this function: