183f5d90aa
On Linux, the os_thread abstraction is built on top of pthread. Many of the pthread calls might fail and return error codes. The error conditions are only checked via assertions (if ever checked) which means that when doing a release build, no error condition is checked. The same goes for dlsym/dlinfo and clock_gettime. This commit improves the situation this by checking the error conditions and acting accordingly. When the error condition is detected in a function with a mean to indicate some error to its caller, then this patch prints some error message and returns. If there is no way to propagate the error up the call stack, print some error message and abort the process. For the os_info::os_info ctor, the only user is CreateThread, which checks that the built thread is Valid(). If not, nullptr is returned to the caller. It could be possible to use exceptions when functions cannot pass errors, but for now I only use abort as it is what abort would do with debug build. Change-Id: I815703c3b95777cc29bb89a7d654ac879c14a759