LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

т.е. хочется не тупо спать 20 мсек, а до начала следующего периода?

while (true) {
	auto time_awake = high_resolution_clock::now();
	action();
	auto time_cur = high_resolution_clock::now();
	for (;  time_awake <= time_cur;  time_awake += 1000ms/20);
	this_thread::sleep_until(time_awake);
}

По-поводу стоимости узнать время - ну хз как где, как-то смотрел у себя без оптимизаций, около 0.2 микросекунды получалось. 20 и 0.0002, ну крохи какие-то.

Зы: хотя подозреваю, что вопрос про что-то многопоточное

Исходная версия pavlick, :

т.е. хочется не тупо спать 20 мсек, а до начала следующего периода?

while (true) {
	auto time_awake = high_resolution_clock::now();
	action();
	auto time_cur = high_resolution_clock::now();
	for (;  time_awake <= time_cur;  time_awake += 1000ms/20);
	this_thread::sleep_until(time_awake);
}

По-поводу стоимости узнать время - ну хз как где, как-то смотрел у себя без оптимизаций, около 0.2 микросекунды получалось. 20 и 0.0002, ну крохи какие-то.