X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Flibc%2B%2B%2Ftrunk%2Ftest%2Fthread%2Fthread.threads%2Fthread.thread.this%2Fsleep_for.pass.cpp;h=f66b9627985cd60963229942031a34242e681e92;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=d66db3f9f30c8d9eaa4df86a8f969c1b0f2c32d0;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/libc++/trunk/test/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp b/src/third_party/libc++/trunk/test/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp index d66db3f..f66b962 100644 --- a/src/third_party/libc++/trunk/test/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp +++ b/src/third_party/libc++/trunk/test/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp @@ -15,9 +15,29 @@ #include #include #include +#include +#include int main() { + int ec; + struct sigaction action; + action.sa_handler = [](int) {}; + sigemptyset(&action.sa_mask); + action.sa_flags = 0; + + ec = sigaction(SIGALRM, &action, nullptr); + assert(!ec); + + struct itimerval it; + it.it_interval = { 0 }; + it.it_value.tv_sec = 0; + it.it_value.tv_usec = 250000; + // This will result in a SIGALRM getting fired resulting in the nanosleep + // inside sleep_for getting EINTR. + ec = setitimer(ITIMER_REAL, &it, nullptr); + assert(!ec); + typedef std::chrono::system_clock Clock; typedef Clock::time_point time_point; typedef Clock::duration duration;