Fix INFINITE time waiting

This commit is contained in:
ssvine
2026-01-02 17:36:05 +03:00
parent 254475e308
commit 9bdb5c9562
4 changed files with 14 additions and 4 deletions

View File

@@ -3,8 +3,14 @@
namespace utils
{
std::chrono::steady_clock::time_point convert_delay_interval_to_time_point(clock& c, const LARGE_INTEGER delay_interval)
std::chrono::steady_clock::time_point convert_delay_interval_to_time_point(clock& c, const LARGE_INTEGER delay_interval,
const LARGE_INTEGER infinite_value)
{
if (delay_interval.QuadPart == infinite_value.QuadPart)
{
return std::chrono::steady_clock::time_point::min();
}
if (delay_interval.QuadPart <= 0)
{
const auto relative_time = -delay_interval.QuadPart;

View File

@@ -102,7 +102,9 @@ namespace utils
}
};
std::chrono::steady_clock::time_point convert_delay_interval_to_time_point(clock& c, LARGE_INTEGER delay_interval);
std::chrono::steady_clock::time_point convert_delay_interval_to_time_point(clock& c, LARGE_INTEGER delay_interval,
LARGE_INTEGER infinite_value = {.LowPart = 0,
.HighPart = -2147483648});
KSYSTEM_TIME convert_to_ksystem_time(const std::chrono::system_clock::time_point& tp);
void convert_to_ksystem_time(volatile KSYSTEM_TIME* dest, const std::chrono::system_clock::time_point& tp);