http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60421
Bug ID: 60421 Summary: std::this_thread::sleep_for doesn't sleep for all arguments Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: jaak at ristioja dot ee #include <chrono> #include <limits> #include <thread> int main() { std::this_thread::sleep_for(std::chrono::duration<uint64_t>(std::numeric_limits<uint64_t>::max())); return 0; } This doesn't even sleep a millisecond. Relevant strace output: nanosleep({18446744073709551615, 0}, NULL) = -1 EINVAL (Invalid argument) Hence the ยง30.3.2.7 of the C++11 standard is violated as sleep_for does not sleep by the relative amount of time specified by its argument. Bug may be run into during testing. Also happens with 4.7.3.