Add new mutex create where mutex attribute can be set
[yaz-moved-to-github.git] / include / yaz / mutex.h
index 4f21521..ff8babb 100644 (file)
@@ -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,7 +114,7 @@ YAZ_EXPORT void yaz_cond_create(YAZ_COND *p);
 YAZ_EXPORT
 void yaz_cond_destroy(YAZ_COND *p);
 
-YAZ_EXPORT struct timeval;
+struct timeval;
 
 /** \brief waits for condition
     \param p condition variable handle