Допустим, я хочу реализовать сопрограмму, в логике которой имеется ожидание, которое эквивалентно http://en.cppreference.com/w/cpp/thread/sleep_until Имеется ли готовый шаблон для такого решения? Если тупо получать текущее время в сопрограмме и делать yield(), если нужный момент не наступил, то получится аналог spinlock - управление будет передаваться по кругу до тех пор, пока для одной из сопрограмм не наступит нужное время. Этого хотелось бы избежать, то есть возвращать управление сопрограмме в нужный момент времени, а неиспользованное время отдавать ОС с помощью того же sleep_until. Высокого разрешения по времени и какой-то большой точности при этом не требуется - сотых долей секунды хватит с головой.
P.S. Подразумевается Boost.Coroutine, но можно и что-то другое, только не экзотическое.