X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fmutex.h;h=ff8babbd429865dccfa61fe8ebd18c8664cfcf2f;hp=dab2f1311381d3b4d5bc5802abf92639fe88a4f2;hb=9f11f349958f122419856006d9295eb0ce41274d;hpb=fe8b76d75847dfc7f9dac3d1382c2eb0ab28dec0 diff --git a/include/yaz/mutex.h b/include/yaz/mutex.h index dab2f13..ff8babb 100644 --- a/include/yaz/mutex.h +++ b/include/yaz/mutex.h @@ -52,6 +52,17 @@ typedef struct yaz_cond *YAZ_COND; */ YAZ_EXPORT void yaz_mutex_create(YAZ_MUTEX *mutexp); +/** \brief create MUTEX with custom MUTEX flags + \param mutexp is pointer to MUTEX handle (*mutexp must be NULL) + \param attr is flags defined by PTHREAD_MUTEX_xxx + + It is important that *mutexp is NULL. If not, yaz_mutex_create will + not modify the handle (assumes it is already created!) + + This calls yax_mutex_create_attr(mutexp, PTHREAD_MUTEX_NORMAL) + */ +YAZ_EXPORT void yaz_mutex_create_attr(YAZ_MUTEX *mutexp, int flags); + /** \brief enter critical section / AKA lock \param mutex MUTEX handle */ @@ -103,6 +114,8 @@ YAZ_EXPORT void yaz_cond_create(YAZ_COND *p); YAZ_EXPORT void yaz_cond_destroy(YAZ_COND *p); +struct timeval; + /** \brief waits for condition \param p condition variable handle \param m mutex @@ -110,8 +123,6 @@ void yaz_cond_destroy(YAZ_COND *p); Semantics like pthread_cond_wait. */ -YAZ_EXPORT struct timeval; - YAZ_EXPORT int yaz_cond_wait(YAZ_COND p, YAZ_MUTEX m, const struct timeval *abstime);