Le 2015-10-08 17:21, Hendrik Leppkes a écrit :
pthread is a bit of a exception. All its functions can return errors,
but the only time they would is if you pass in an invalid argument.
No-one checks return values of pthread_mutex_lock, for example.
That is not true. Plenty of projects check for errors there for
debugging.
Only functions worthy of checking are the related init functions.
I have to disagree pretty much totally here.
POSIX thread errors on use (lock, unlock, signal, wait, etc) and
destroy functions should be checked via assertions. I found quite a few
bugs in other projects thanks to that. In debug builds, error detection
can be further improved with the error-checking mutex type instead of
the default.
On the other hand, checking init functions is useless. Any sane POSIX
thread implementation will just initialize memory and always return 0
(glibc does that, probably musl too). Errors are only specified to allow
naive POSIX implementations to allocate resources; reasonable
implementations allocate all needed resources when creating processes
and threads.
Except for the ETIMEDOUT error, the only really possible failure case
is pthread_create().
--
Rémi Denis-Courmont
http://www.remlab.net/
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel