Это действительно потрясающая ошибка, исправленная в G CC 10 ( ошибка 41861 описывает ее в контексте <condition_variable>
).
В тот день, когда я столкнулся это было заманчиво прибегнуть к Boost, чтобы получить правильное поведение, но даже это было сломано до 1.61 . И в наше время было бы странно смешивать Boost и стандартный код синхронизации / потоков, так как стандартные средства обычно зрелы и предпочтительны (обнаружена ирония!).
В то время я делал замену condition_variable
, который непосредственно включал функциональность POSIX.
Что бы вы ни делали с sleep_for
/ sleep_until
, я подозреваю, что у вас мало возможностей, но вы можете сделать то же самое, извините.