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;
}