libbb: introduce bb_signals and bb_signals_recursive,
which sets same handler for many signals. sig_catch is nuked (bb_signals_recursive is more descriptive name). *: use them as appropriate. function old new delta bb_signals_recursive - 95 +95 bb_signals - 52 +52 run_command 258 273 +15 svlogd_main 1368 1377 +9 runsv_main 1746 1752 +6 runsvdir_main 1643 1646 +3 UNSPEC_print 64 66 +2 time_main 1128 1127 -1 ... resize_main 246 210 -36 sig_catch 63 - -63 set_fatal_sighandler 85 14 -71 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 5/24 up/down: 182/-548) Total: -366 bytes
This commit is contained in:
@@ -274,14 +274,18 @@ char *xrealloc_getcwd_or_warn(char *cwd);
|
||||
|
||||
char *xmalloc_follow_symlinks(const char *path);
|
||||
|
||||
//TODO: signal(sid, f) is the same? then why?
|
||||
extern void sig_catch(int,void (*)(int));
|
||||
//#define sig_ignore(s) (sig_catch((s), SIG_IGN))
|
||||
//#define sig_uncatch(s) (sig_catch((s), SIG_DFL))
|
||||
extern void sig_block(int);
|
||||
extern void sig_unblock(int);
|
||||
/* UNUSED: extern void sig_blocknone(void); */
|
||||
extern void sig_pause(void);
|
||||
//enum {
|
||||
// BB_SIGS_FATAL = ,
|
||||
//};
|
||||
void bb_signals(int sigs, void (*f)(int));
|
||||
/* Unlike signal() and bb_signals, sets handler with sigaction()
|
||||
* and in a way that while signal handler is run, no other signals
|
||||
* will be blocked: */
|
||||
void bb_signals_recursive(int sigs, void (*f)(int));
|
||||
void sig_block(int);
|
||||
void sig_unblock(int);
|
||||
/* UNUSED: void sig_blocknone(void); */
|
||||
void sig_pause(void);
|
||||
|
||||
|
||||
void xsetgid(gid_t gid);
|
||||
|
Reference in New Issue
Block a user