diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-12-13 19:48:11 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-12-13 19:48:11 +0000 |
commit | 7f77b23da8bd5061aba9431a6f6052fb4bd826f7 (patch) | |
tree | 1062557082fd834f22d3c5428085223882333342 | |
parent | Merge pull request #527 (diff) | |
download | monero-7f77b23da8bd5061aba9431a6f6052fb4bd826f7.tar.xz |
posix_daemonizer: only create the main daemon object in the last child
This prevents the intermediate thread from exiting properly, as
fork creates a child process with only one thread, so any existing
data_logger thread will not be in the child. Since this thread
sets a flag the data_logger dtor blocks on, all children threads
will hang on exit.
-rw-r--r-- | src/daemonizer/posix_daemonizer.inl | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/daemonizer/posix_daemonizer.inl b/src/daemonizer/posix_daemonizer.inl index c07b96c55..5675fd72d 100644 --- a/src/daemonizer/posix_daemonizer.inl +++ b/src/daemonizer/posix_daemonizer.inl @@ -74,9 +74,9 @@ namespace daemonizer { if (command_line::has_arg(vm, arg_detach)) { - auto daemon = executor.create_daemon(vm); tools::success_msg_writer() << "Forking to background..."; posix::fork(); + auto daemon = executor.create_daemon(vm); return daemon.run(); } else |