常规更新

This commit is contained in:
2026-07-24 10:54:45 +08:00
parent 0f4623cbef
commit e8bcc7ecfd
117 changed files with 12097 additions and 14121 deletions
+48 -60
View File
@@ -1,66 +1,54 @@
#include <iostream>
#include <utility>
#include "Core/Base/global_include.h"
#include "Core/spdlog/export.h"
#include "Core/system/export.h"
#include "export.h"
#include <iostream>
#include <utility>
namespace Psc {
// std::exit std::terminate 的核心区别就是 是否需要生成core_dump 文件
// std::terminate() 到底做了什么(标准层面)
// 默认行为:调用 std::abort()
// abort() → 发送 SIGABRT
// 在 Linux/systemd 下
// SIGABRT 通常生成 core
// 前提:
// ulimit -c ≠ 0
// LimitCORE 允许
// 未被 coredump 规则拦截
// 典型触发场景:
// 未捕获异常
// noexcept 函数抛异常
// 明确选择 Fail-Fast
// terminate 的职责:
// 定义 “此时必须终止” 的 语言语义
// 调用 terminate handler
// 允许用户替换策略(std::set_terminate
// std::set_terminate([]{
// log_fatal();
// std::abort();
// });
// std::exit() 到底做了什么(标准层面)
// C++ 标准规定,std::exit() 会:
// 调用 所有 std::atexit() 注册的函数(逆序)
// 刷新并关闭标准 I/O
// 结束进程
// TODO: 未被管理的线程的 线程安全问题
std::atomic_int stop_program = 0;
std::function<void(std::string)> g_fail_fast = [](std::string msg) {
std::cout << get_current_time_as_string() << " 默认快速失败触发!(不生成core_dump_文件) " << VAR_STR_1(msg) << " 系统错误码:" << get_error_message() << std::endl;
std::cout << LOG_POS << std::endl;
std::exit(75);
};
void fail_fast(std::string msg) {
g_fail_fast(std::move(msg));
}
void set_fail_fast(std::function<void(std::string)> ff) {
std::cout << "set_fail_fast 覆盖默认主动失败处理函数" << std::endl;
g_fail_fast = std::move(ff);
}
void fail_fast_core_dump(std::string msg) {
std::cout << get_current_time_as_string() << " 默认快速失败触发!(生成core_dump_文件) " << VAR_STR_1(msg) << " 系统错误码:" << get_error_message() << std::endl;
std::cout << LOG_POS << std::endl;
std::terminate();
}
// std::exit std::terminate 的核心区别就是 是否需要生成core_dump 文件
// std::terminate() 到底做了什么(标准层面)
// 默认行为:调用 std::abort()
// abort() → 发送 SIGABRT
// 在 Linux/systemd 下:
// SIGABRT 通常生成 core
// 前提
// ulimit -c ≠ 0
// LimitCORE 允许
// 未被 coredump 规则拦截
// 典型触发场景:
// 未捕获异常
// noexcept 函数抛异常
// 明确选择 Fail-Fast
// terminate 的职责:
// 定义 “此时必须终止” 的 语言语义
// 调用 terminate handler
// 允许用户替换策略(std::set_terminate
// std::set_terminate([]{
// log_fatal();
// std::abort();
// });
// std::exit() 到底做了什么(标准层面)
// C++ 标准规定,std::exit() 会:
// 调用 所有 std::atexit() 注册的函数(逆序)
// 刷新并关闭标准 I/O
// 结束进程
// TODO: 未被管理的线程的 线程安全问题
std::atomic_int stop_program = 0;
std::function<void(std::string)> g_fail_fast = [](std::string msg) {
std::cout << get_current_time_as_string() << " 默认快速失败触发!(不生成core_dump_文件) " << VAR_STR_1(msg) << " 系统错误码:" << get_error_message() << std::endl;
std::cout << LOG_POS << std::endl;
std::exit(75);
};
void fail_fast(std::string msg) {
g_fail_fast(std::move(msg));
}
void set_fail_fast(std::function<void(std::string)> ff) {
std::cout << "set_fail_fast 覆盖默认主动失败处理函数" << std::endl;
g_fail_fast = std::move(ff);
}
void fail_fast_core_dump(std::string msg) {
std::cout << get_current_time_as_string() << " 默认快速失败触发!(生成core_dump_文件) " << VAR_STR_1(msg) << " 系统错误码:" << get_error_message() << std::endl;
std::cout << LOG_POS << std::endl;
std::terminate();
}
} // namespace Psc