Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | threads: avoid timeout calculation overflow | wm4 | 2014-02-10 | 1 | -0/+3 |
| | | | | | | | | | It's quite possible to overflow the calculation by setting the timeout to high values. Limit it to INT_MAX, which should be safe. The issue is mainly the secs variable. timespec.tv_sec will normally be 64 bit on sane systems, and we assume it can't overflow by adding INT_MAX to it. | ||||
* | threads: add function to calculate deadline for timed waits | wm4 | 2014-01-31 | 1 | -3/+12 |
| | | | | | | | | | | | | Usually, you have to call pthread_cond_timedwait() in a loop (because it can wake up sporadically). If this function is used by another higher level function, which uses a relative timeout, we actually have to reduce the timeout on each iteration - or, simpler, compute the "deadline" at the beginning of the function, and always pass the same absolute time to the waiting function. Might be unsafe if the system time is changed. On the other hand, this is a fundamental race condition with these APIs. | ||||
* | threads: add wrapper for initializing recursive mutexes | wm4 | 2014-01-31 | 1 | -0/+11 |
| | | | | Damn this overly verbose pthread API. | ||||
* | stream: split out pthread helper function | wm4 | 2013-11-17 | 1 | -0/+57 |
Also split the function itself into 3. |