mirror of
https://github.com/tdlight-team/tdlight-telegram-bot-api.git
synced 2024-12-24 19:55:52 +01:00
Dump statistics after stacktrace.
This commit is contained in:
parent
e5af2d3133
commit
30da51bc72
@ -86,6 +86,8 @@ void print_log() {
|
|||||||
|
|
||||||
static std::atomic_bool has_failed{false};
|
static std::atomic_bool has_failed{false};
|
||||||
|
|
||||||
|
static std::atomic_flag need_dump_statistics;
|
||||||
|
|
||||||
static void dump_stacktrace_signal_handler(int sig) {
|
static void dump_stacktrace_signal_handler(int sig) {
|
||||||
if (has_failed) {
|
if (has_failed) {
|
||||||
return;
|
return;
|
||||||
@ -96,6 +98,7 @@ static void dump_stacktrace_signal_handler(int sig) {
|
|||||||
td::signal_safe_write(td::Slice("\n"), false);
|
td::signal_safe_write(td::Slice("\n"), false);
|
||||||
}
|
}
|
||||||
td::Stacktrace::print_to_stderr();
|
td::Stacktrace::print_to_stderr();
|
||||||
|
need_dump_statistics.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void fail_signal_handler(int sig) {
|
static void fail_signal_handler(int sig) {
|
||||||
@ -139,6 +142,7 @@ int main(int argc, char *argv[]) {
|
|||||||
need_reopen_log.test_and_set();
|
need_reopen_log.test_and_set();
|
||||||
need_quit.test_and_set();
|
need_quit.test_and_set();
|
||||||
need_change_verbosity_level.test_and_set();
|
need_change_verbosity_level.test_and_set();
|
||||||
|
need_dump_statistics.test_and_set();
|
||||||
need_dump_log.test_and_set();
|
need_dump_log.test_and_set();
|
||||||
|
|
||||||
td::Stacktrace::init();
|
td::Stacktrace::init();
|
||||||
@ -548,8 +552,7 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
if (!need_dump_log.test_and_set()) {
|
if (!need_dump_log.test_and_set()) {
|
||||||
print_log();
|
print_log();
|
||||||
auto guard = sched.get_main_guard();
|
need_dump_statistics.clear();
|
||||||
send_closure(client_manager, &ClientManager::dump_statistics);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double now = td::Time::now();
|
double now = td::Time::now();
|
||||||
@ -567,7 +570,7 @@ int main(int argc, char *argv[]) {
|
|||||||
next_watchdog_kick_time = now + WATCHDOG_TIMEOUT / 2;
|
next_watchdog_kick_time = now + WATCHDOG_TIMEOUT / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (now > last_dump_time + 300.0) {
|
if (!need_dump_statistics.test_and_set() || now > last_dump_time + 300.0) {
|
||||||
last_dump_time = now;
|
last_dump_time = now;
|
||||||
auto guard = sched.get_main_guard();
|
auto guard = sched.get_main_guard();
|
||||||
send_closure(client_manager, &ClientManager::dump_statistics);
|
send_closure(client_manager, &ClientManager::dump_statistics);
|
||||||
|
Loading…
Reference in New Issue
Block a user