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

Signed-off-by: Jiri Palecek <[email protected]>
---
 testcases/kernel/syscalls/utils/common_j_h.c |   10 ----------
 1 files changed, 0 insertions(+), 10 deletions(-)

diff --git a/testcases/kernel/syscalls/utils/common_j_h.c 
b/testcases/kernel/syscalls/utils/common_j_h.c
index cda3198..d122ff9 100644
--- a/testcases/kernel/syscalls/utils/common_j_h.c
+++ b/testcases/kernel/syscalls/utils/common_j_h.c
@@ -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;
        }
 }
-- 
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

Reply via email to