Author: philip
Date: Wed Feb 10 17:25:55 2016
New Revision: 1729673

URL: http://svn.apache.org/viewvc?rev=1729673&view=rev
Log:
Move a bit more of the signal handling code from the programs to the library.

* subversion/include/private/svn_cmdline_private.h
  (svn_cmdline__get_cancellation_signal): Remove.
  (svn_cmdline__cancellation_exit): New.

* subversion/libsvn_subr/cmdline.c
  (svn_cmdline__get_cancellation_signal): Remove.
  (svn_cmdline__cancellation_exit): New.

* subversion/svn/svn.c
* subversion/svnadmin/svnadmin.c
* subversion/svnbench/svnbench.c
* subversion/svnfsfs/svnfsfs.c
* subversion/svnlook/svnlook.c
* subversion/svnrdump/svnrdump.c
* subversion/svnsync/svnsync.c
  (main): Call new function.

Modified:
    subversion/trunk/subversion/include/private/svn_cmdline_private.h
    subversion/trunk/subversion/libsvn_subr/cmdline.c
    subversion/trunk/subversion/svn/svn.c
    subversion/trunk/subversion/svnadmin/svnadmin.c
    subversion/trunk/subversion/svnbench/svnbench.c
    subversion/trunk/subversion/svnfsfs/svnfsfs.c
    subversion/trunk/subversion/svnlook/svnlook.c
    subversion/trunk/subversion/svnrdump/svnrdump.c
    subversion/trunk/subversion/svnsync/svnsync.c

Modified: subversion/trunk/subversion/include/private/svn_cmdline_private.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_cmdline_private.h?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_cmdline_private.h Wed Feb 
10 17:25:55 2016
@@ -261,11 +261,12 @@ svn_cmdline__setup_cancellation_handler(
 void
 svn_cmdline__disable_cancellation_handler(void);
 
-/* Return a signal that triggered cancellation if any, or zero
-   otherwise.  If a signal is returned the signal handling for that
-   signal will be reset to default. */
-int
-svn_cmdline__get_cancellation_signal(void);
+/* Exit this process with a status that indicates the cancellation
+   signal, or return without exiting if there is no signal.  This
+   allows the shell to use WIFSIGNALED and WTERMSIG to detect the
+   signal.  See http://www.cons.org/cracauer/sigint.html */
+void
+svn_cmdline__cancellation_exit(void);
 
 #ifdef __cplusplus
 }

Modified: subversion/trunk/subversion/libsvn_subr/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cmdline.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cmdline.c Wed Feb 10 17:25:55 2016
@@ -1687,15 +1687,19 @@ svn_cmdline__disable_cancellation_handle
     apr_signal(signal_map[i], SIG_DFL);
 }
 
-int
-svn_cmdline__get_cancellation_signal(void)
+void
+svn_cmdline__cancellation_exit(void)
 {
   int signum = 0;
 
   if (cancelled && signum_cancelled)
     signum = signal_map[signum_cancelled - 1];
   if (signum)
-    apr_signal(signum, SIG_DFL);
-
-  return signum;
+    {
+#ifndef WIN32
+      apr_signal(signum, SIG_DFL);
+      /* No APR support for getpid() so cannot use apr_proc_kill(). */
+      kill(getpid(), signum);
+#endif
+    }
 }

Modified: subversion/trunk/subversion/svn/svn.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svn/svn.c (original)
+++ subversion/trunk/subversion/svn/svn.c Wed Feb 10 17:25:55 2016
@@ -3105,18 +3105,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-    }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnadmin/svnadmin.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnadmin/svnadmin.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnadmin/svnadmin.c (original)
+++ subversion/trunk/subversion/svnadmin/svnadmin.c Wed Feb 10 17:25:55 2016
@@ -2984,18 +2984,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnbench/svnbench.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnbench/svnbench.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnbench/svnbench.c (original)
+++ subversion/trunk/subversion/svnbench/svnbench.c Wed Feb 10 17:25:55 2016
@@ -1025,18 +1025,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnfsfs/svnfsfs.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnfsfs/svnfsfs.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnfsfs/svnfsfs.c (original)
+++ subversion/trunk/subversion/svnfsfs/svnfsfs.c Wed Feb 10 17:25:55 2016
@@ -493,18 +493,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnlook/svnlook.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnlook/svnlook.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnlook/svnlook.c (original)
+++ subversion/trunk/subversion/svnlook/svnlook.c Wed Feb 10 17:25:55 2016
@@ -2846,18 +2846,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnrdump/svnrdump.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnrdump/svnrdump.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnrdump/svnrdump.c (original)
+++ subversion/trunk/subversion/svnrdump/svnrdump.c Wed Feb 10 17:25:55 2016
@@ -1124,18 +1124,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }

Modified: subversion/trunk/subversion/svnsync/svnsync.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnsync/svnsync.c?rev=1729673&r1=1729672&r2=1729673&view=diff
==============================================================================
--- subversion/trunk/subversion/svnsync/svnsync.c (original)
+++ subversion/trunk/subversion/svnsync/svnsync.c Wed Feb 10 17:25:55 2016
@@ -2429,18 +2429,7 @@ main(int argc, const char *argv[])
 
   svn_pool_destroy(pool);
 
-#ifndef WIN32
-  /* Resend any signal as this may cause the program to exit and
-     allows the shell to use WIFSIGNALED and WTERMSIG to detect the
-     signal.  See http://www.cons.org/cracauer/sigint.html */
-  {
-    int signum = svn_cmdline__get_cancellation_signal();
-
-    if (signum)
-      /* No APR support for getpid() so cannot use apr_proc_kill(). */
-      kill(getpid(), signum);
-  }
-#endif
+  svn_cmdline__cancellation_exit();
 
   return exit_code;
 }


Reply via email to