[asterisk-dev] Pthread wrapper updates

SF Markus Elfring elfring at users.sourceforge.net
Wed Oct 25 13:51:36 MST 2006


Hello,

Some Pthread functions were wrapped into a specific API.
http://www.asterisk.org/doxygen/lock_8h.html#_details

All interfaces return an integer. Now I have noticed that the value is 
not needed by the functions "__ast_pthread_mutex_lock", 
"__ast_pthread_mutex_unlock", "__ast_cond_wait" and 
"__ast_cond_timedwait" because the macro "DO_THREAD_CRASH" (abort by 
write access to a null pointer) will be called in the unrecoverable 
error case.
http://svn.digium.com/view/asterisk/trunk/include/asterisk/lock.h?rev=43953&view=markup

How do you think about to change the return type to "void" for them and 
the corresponding "ast_mutex_..." functions if the preprocessor symbol 
"THREAD_CRASH" is defined? Otherwise, it seems that error codes from 
calls like trylock, lock and unlock will be ignored which might lead to 
thread-unsafe program execution.
http://bugs.digium.com/view.php?id=8157
Are any additional tweaks needed for correct error handling?

Regards,
Markus


More information about the asterisk-dev mailing list