|
@@ -3264,14 +3264,14 @@ const
|
|
|
#endif
|
|
#endif
|
|
|
char **initial_args;
|
|
char **initial_args;
|
|
|
|
|
|
|
|
-static void clean_up(void);
|
|
|
|
|
|
|
+static void clean_up(bool restarting);
|
|
|
|
|
|
|
|
void app_restart(void)
|
|
void app_restart(void)
|
|
|
{
|
|
{
|
|
|
applog(LOG_WARNING, "Attempting to restart %s", packagename);
|
|
applog(LOG_WARNING, "Attempting to restart %s", packagename);
|
|
|
|
|
|
|
|
__kill_work();
|
|
__kill_work();
|
|
|
- clean_up();
|
|
|
|
|
|
|
+ clean_up(true);
|
|
|
|
|
|
|
|
#if defined(unix) || defined(__APPLE__)
|
|
#if defined(unix) || defined(__APPLE__)
|
|
|
if (forkpid > 0) {
|
|
if (forkpid > 0) {
|
|
@@ -7219,7 +7219,7 @@ void print_summary(void)
|
|
|
fflush(stdout);
|
|
fflush(stdout);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-static void clean_up(void)
|
|
|
|
|
|
|
+static void clean_up(bool restarting)
|
|
|
{
|
|
{
|
|
|
#ifdef HAVE_OPENCL
|
|
#ifdef HAVE_OPENCL
|
|
|
clear_adl(nDevs);
|
|
clear_adl(nDevs);
|
|
@@ -7234,18 +7234,22 @@ static void clean_up(void)
|
|
|
#ifdef WIN32
|
|
#ifdef WIN32
|
|
|
timeEndPeriod(1);
|
|
timeEndPeriod(1);
|
|
|
#endif
|
|
#endif
|
|
|
|
|
+ if (!restarting) {
|
|
|
|
|
+ /* Attempting to disable curses or print a summary during a
|
|
|
|
|
+ * restart can lead to a deadlock. */
|
|
|
#ifdef HAVE_CURSES
|
|
#ifdef HAVE_CURSES
|
|
|
- disable_curses();
|
|
|
|
|
|
|
+ disable_curses();
|
|
|
#endif
|
|
#endif
|
|
|
- if (!opt_realquiet && successful_connect)
|
|
|
|
|
- print_summary();
|
|
|
|
|
|
|
+ if (!opt_realquiet && successful_connect)
|
|
|
|
|
+ print_summary();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
curl_global_cleanup();
|
|
curl_global_cleanup();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void _quit(int status)
|
|
void _quit(int status)
|
|
|
{
|
|
{
|
|
|
- clean_up();
|
|
|
|
|
|
|
+ clean_up(false);
|
|
|
|
|
|
|
|
#if defined(unix) || defined(__APPLE__)
|
|
#if defined(unix) || defined(__APPLE__)
|
|
|
if (forkpid > 0) {
|
|
if (forkpid > 0) {
|