Remove the signal-waiting logic from create_sig_proc()
PATCH 1/1 Remove the signal-waiting logic from create_sig_proc()
In create_sig_proc, the child process waits for the parent to wake it with a signal. This doesn't actually solve anything, and the implementation with pause() syscall is inherently racy (the race results in a deadlock). This patch removes it; it doesn't make the function race-free (it's possible the child will send the signal before the parent had chance to run), but this is the best you can get.
Regards
Jiri Palecek
--- testcases/kernel/syscalls/utils/common_j_h.c | 10 ---------- 1 files changed, 0 insertions(+), 10 deletions(-)
testcases/kernel/syscalls/utils/common_j_h.c +0 -10
@@ -102,23 +102,14 @@ int cleanup_euid(uid_t old_uid)/* * Generate a child process which will send a signal */ -static void sighandler_for_sig_proc (int sig) -{ -if (sig ==SIGUSR2 ) -return ; -return ; -} -pid_t create_sig_proc (unsigned long usec,int sig) {pid_t pid, cpid; -signal (SIGUSR2 , sighandler_for_sig_proc); pid =getpid (); cpid =fork ();switch (cpid) {case 0 : -pause ();usleep (usec);kill (pid, sig);_exit (0 );
@@ -127,7 +118,6 @@ pid_t create_sig_proc(unsigned long usec, int sig)EPRINTF ("fork failed.\n" );return cpid;default : -kill (cpid,SIGUSR2 );return cpid; } }
Signature · 13 lines
1.6.2.4 ------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 8 lines · Jiri Palecek
In
create_sig_proc, the child process waits for the parent to wake it
with a signal. This doesn't actually solve anything, and the implementation withpause()syscall is inherently racy (the race results in a deadlock). This patch removes it; it doesn't make the function race-free (it's possible the child will send the signal before the parent had chance to run), but this is the best you can get.
Quoted 4 lines
Regards
Jiri PalecekSigned-off-by Jiri Palecek <[email protected]>
Thanks.
Regards--
Subrata
Quoted 33 lines
--- testcases/kernel/syscalls/utils/common_j_h.c | 10 ---------- 1 files changed, 0 insertions(+), 10 deletions(-)testcases/kernel/syscalls/utils/common_j_h.c +0
-9@@ -102,23 +102,14 @@ int cleanup_euid(uid_t old_uid)/* * Generate a child process which will send a signal */ -static void sighandler_for_sig_proc (int sig) -{ -if (sig ==SIGUSR2 ) -return ; -return ; -} -pid_t create_sig_proc (unsigned long usec,int sig) {pid_t pid, cpid; -signal (SIGUSR2 , sighandler_for_sig_proc); pid =getpid (); cpid =fork ();switch (cpid) {case 0 : -pause ();usleep (usec);kill (pid, sig);_exit (0 );
testcases/kernel/syscalls/utils/common_j_h.c pid_t create_sig_proc(unsigned long usec, int sig) · line 123
Quoted 7 lines
testcases/kernel/syscalls/utils/common_j_h.c +0
-1@@ -127,7 +118,6 @@ pid_t create_sig_proc(unsigned long usec, int sig)EPRINTF ("fork failed.\n" );return cpid;default : -kill (cpid,SIGUSR2 );return cpid; } }
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list