• Christian Körner's avatar
    thread/PosixCond: fix timed_wait · 8bbfb5cd
    Christian Körner authored
    pthread_cond_timedwait() in PosixCond.hxx:timed_wait(PosixMutex...) returns
    EINVAL, if ts.tv_nsec >= 1E9. In this case, it returns to early.
    
    Find attached a patch which fixes this. I chose a compare-subtraction method
    to keep ts.tv_nsec below 1E9.
    
    Another option would be
    ts.tv_sec += ts.tv_nsec / 1000000000;
    ts.tv_nsec %= 1000000000;
    
    But I guess this takes more time on some ARM processors, which don't support
    hardware division.
    8bbfb5cd
PosixCond.hxx 2.64 KB