Line
Link Here
|
0 |
-- xfsprogs-3.1.10/copy/xfs_copy.c |
0 |
++ xfsprogs-3.1.10-sigprocmask/copy/xfs_copy.c |
Lines 72-77
xfs_off_t write_log_header(int fd, wbuf
Link Here
|
72 |
#define LAST 0x10 /* final message we print */ |
72 |
#define LAST 0x10 /* final message we print */ |
73 |
|
73 |
|
74 |
void |
74 |
void |
|
|
75 |
signal_maskfunc(int addset, int newset) |
76 |
{ |
77 |
sigset_t set; |
78 |
|
79 |
sigemptyset(&set); |
80 |
sigaddset(&set, addset); |
81 |
sigprocmask(newset, &set, NULL); |
82 |
} |
83 |
|
84 |
void |
75 |
do_message(int flags, int code, const char *fmt, ...) |
85 |
do_message(int flags, int code, const char *fmt, ...) |
76 |
{ |
86 |
{ |
77 |
va_list ap; |
87 |
va_list ap; |
Lines 478-486
write_wbuf(void)
Link Here
|
478 |
if (target[i].state != INACTIVE) |
488 |
if (target[i].state != INACTIVE) |
479 |
pthread_mutex_unlock(&targ[i].wait); /* wake up */ |
489 |
pthread_mutex_unlock(&targ[i].wait); /* wake up */ |
480 |
|
490 |
|
481 |
sigrelse(SIGCHLD); |
491 |
signal_maskfunc(SIGCHLD, SIG_UNBLOCK); |
482 |
pthread_mutex_lock(&mainwait); |
492 |
pthread_mutex_lock(&mainwait); |
483 |
sighold(SIGCHLD); |
493 |
signal_maskfunc(SIGCHLD, SIG_BLOCK); |
484 |
} |
494 |
} |
485 |
|
495 |
|
486 |
|
496 |
|
Lines 847-853
main(int argc, char **argv)
Link Here
|
847 |
/* set up sigchild signal handler */ |
857 |
/* set up sigchild signal handler */ |
848 |
|
858 |
|
849 |
signal(SIGCHLD, handler); |
859 |
signal(SIGCHLD, handler); |
850 |
sighold(SIGCHLD); |
860 |
signal_maskfunc(SIGCHLD, SIG_BLOCK); |
851 |
|
861 |
|
852 |
/* make children */ |
862 |
/* make children */ |
853 |
|
863 |
|