|
|
|
@ -32,6 +32,7 @@
@@ -32,6 +32,7 @@
|
|
|
|
|
#include <csignal> |
|
|
|
|
#include <cstdlib> |
|
|
|
|
#include <memory> |
|
|
|
|
#include <tuple> |
|
|
|
|
|
|
|
|
|
#if defined(Q_OS_UNIX) |
|
|
|
|
#include <sys/resource.h> |
|
|
|
@ -210,9 +211,7 @@ int main(int argc, char *argv[])
@@ -210,9 +211,7 @@ int main(int argc, char *argv[])
|
|
|
|
|
throw CommandLineParameterError(QObject::tr("You cannot use %1: qBittorrent is already running for this user.") |
|
|
|
|
.arg(u"-d (or --daemon)"_qs)); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
#endif |
|
|
|
|
qDebug("qBittorrent is already running for this user."); |
|
|
|
|
|
|
|
|
|
QThread::msleep(300); |
|
|
|
|
app->sendParams(params.paramList()); |
|
|
|
@ -318,17 +317,13 @@ int main(int argc, char *argv[])
@@ -318,17 +317,13 @@ int main(int argc, char *argv[])
|
|
|
|
|
void reportToUser(const char *str) |
|
|
|
|
{ |
|
|
|
|
const size_t strLen = strlen(str); |
|
|
|
|
#ifndef Q_OS_WIN |
|
|
|
|
if (write(STDERR_FILENO, str, strLen) < static_cast<ssize_t>(strLen)) |
|
|
|
|
{ |
|
|
|
|
const auto dummy = write(STDOUT_FILENO, str, strLen); |
|
|
|
|
#ifdef Q_OS_WIN |
|
|
|
|
if (_write(_fileno(stderr), str, strLen) < static_cast<int>(strLen)) |
|
|
|
|
std::ignore = _write(_fileno(stdout), str, strLen); |
|
|
|
|
#else |
|
|
|
|
if (_write(STDERR_FILENO, str, strLen) < static_cast<ssize_t>(strLen)) |
|
|
|
|
{ |
|
|
|
|
const auto dummy = _write(STDOUT_FILENO, str, strLen); |
|
|
|
|
if (write(STDERR_FILENO, str, strLen) < static_cast<ssize_t>(strLen)) |
|
|
|
|
std::ignore = write(STDOUT_FILENO, str, strLen); |
|
|
|
|
#endif |
|
|
|
|
Q_UNUSED(dummy); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
@ -357,8 +352,10 @@ void sigAbnormalHandler(int signum)
@@ -357,8 +352,10 @@ void sigAbnormalHandler(int signum)
|
|
|
|
|
reportToUser(msg); |
|
|
|
|
reportToUser(sigName); |
|
|
|
|
reportToUser("\n"); |
|
|
|
|
#if !defined Q_OS_WIN |
|
|
|
|
print_stacktrace(); // unsafe
|
|
|
|
|
#endif |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if defined Q_OS_WIN && !defined DISABLE_GUI |
|
|
|
|
StacktraceDialog dlg; // unsafe
|
|
|
|
|