#include <rpm/rpmsw.h>
#include <signal.h>
Go to the source code of this file.
◆ rpmsig
| typedef struct rpmsig_s* rpmsig |
◆ rpmsq
| typedef struct rpmsqElem* rpmsq |
◆ rpmsqAction_t
| typedef void(* rpmsqAction_t) (int signum) |
Default signal handler prototype.
- Parameters
-
| signum | signal number |
| info | (siginfo_t) signal info |
| context | signal context |
Definition at line 36 of file rpmsq.h.
◆ rpmsqAction()
| void rpmsqAction |
( |
int |
signum | ) |
|
Default signal handler.
- Parameters
-
| signum | signal number |
| info | (siginfo_t) signal info |
| context | signal context |
◆ rpmsqEnable()
Enable or disable a signal handler.
- Parameters
-
| signum | signal to enable (or disable if negative) |
| handler | sa_sigaction handler (or NULL to use rpmsqHandler()) |
- Returns
- no. of refs, -1 on error
◆ rpmsqExecve()
| int rpmsqExecve |
( |
const char ** |
argv | ) |
|
Execute a command, returning its status.
◆ rpmsqFork()
| pid_t rpmsqFork |
( |
rpmsq |
sq | ) |
|
Fork a child process.
- Parameters
-
| sq | scriptlet queue element |
- Returns
- fork(2) pid
◆ rpmsqIsCaught()
| int rpmsqIsCaught |
( |
int |
signum | ) |
|
Test if given signal has been caught (while signals blocked).
Similar to sigismember() but operates on internal signal queue.
- Parameters
-
- Returns
- 1 if caught, 0 if not and -1 on error
◆ rpmsqJoin()
| int rpmsqJoin |
( |
void * |
thread | ) |
|
Wait for thread to terminate.
- Parameters
-
- Returns
- 0 on success
◆ rpmsqThread()
| void* rpmsqThread |
( |
void *(*)(void *arg) |
start, |
|
|
void * |
arg |
|
) |
| |
Call a function in a thread.
- Parameters
-
| start | function |
| arg | function argument |
- Returns
- thread pointer (NULL on error)
◆ rpmsqThreadEqual()
| int rpmsqThreadEqual |
( |
void * |
thread | ) |
|
Compare thread with current thread.
- Parameters
-
- Returns
- 0 if not equal
◆ rpmsqWait()
| pid_t rpmsqWait |
( |
rpmsq |
sq | ) |
|
Wait for child process to be reaped.
- Parameters
-
| sq | scriptlet queue element |
- Returns
- reaped child pid
◆ _rpmsq_debug