Fix socket poll and handling in windows (#6166)
* Fix socket poll and handling in windows * Fix clang * Add guest timing adjust * Use platform independent time fetch * Use proper type in time_point * Fix ambiguous function call * Do suggestions * Take cpu_clock_scale into account in tick adjust
This commit is contained in:
@ -174,6 +174,22 @@ void Timing::Timer::MoveEvents() {
|
||||
}
|
||||
}
|
||||
|
||||
u32 Timing::Timer::StartAdjust() {
|
||||
ASSERT((adjust_value_curr_handle & 1) == 0); // Should always be even
|
||||
adjust_value_last = std::chrono::steady_clock::now();
|
||||
return ++adjust_value_curr_handle;
|
||||
}
|
||||
|
||||
void Timing::Timer::EndAdjust(u32 start_adjust_handle) {
|
||||
std::chrono::time_point<std::chrono::steady_clock> new_timer = std::chrono::steady_clock::now();
|
||||
ASSERT(new_timer >= adjust_value_last && start_adjust_handle == adjust_value_curr_handle);
|
||||
AddTicks(nsToCycles(static_cast<float>(
|
||||
std::chrono::duration_cast<std::chrono::nanoseconds>(new_timer - adjust_value_last)
|
||||
.count() /
|
||||
cpu_clock_scale)));
|
||||
++adjust_value_curr_handle;
|
||||
}
|
||||
|
||||
s64 Timing::Timer::GetMaxSliceLength() const {
|
||||
const auto& next_event = event_queue.begin();
|
||||
if (next_event != event_queue.end()) {
|
||||
|
Reference in New Issue
Block a user