X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fmutex.h;h=d9573ec021e8e58121b1e4e1cdd1b4b7fb85fea0;hp=d7f2c6d86d79edbfc607f8e3d41a83209b1c9264;hb=6dc532f9c0278f7156e2940285247442681ddbf7;hpb=e8be0a844a4301118fad33bd953b4a1d4044c575 diff --git a/include/yaz/mutex.h b/include/yaz/mutex.h index d7f2c6d..d9573ec 100644 --- a/include/yaz/mutex.h +++ b/include/yaz/mutex.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data. + * Copyright (C) Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -46,7 +46,7 @@ typedef struct yaz_cond *YAZ_COND; /** \brief create MUTEX \param mutexp is pointer to MUTEX handle (*mutexp must be NULL) - + It is important that *mutexp is NULL. If not, yaz_mutex_create will not modify the handle (assumes it is already created!) */ @@ -84,23 +84,27 @@ YAZ_EXPORT void yaz_mutex_destroy(YAZ_MUTEX *mutexp); This function should be called after a MUTEX is created but before it is used for locking. */ +YAZ_EXPORT void yaz_mutex_set_name(YAZ_MUTEX mutex, int log_level, const char *name); /** \brief creates condition variable \param p reference to condition handle - + Upon successful completion *p holds the condition handle; *p = 0 on error. */ -void yaz_cond_create(YAZ_COND *p); +YAZ_EXPORT void yaz_cond_create(YAZ_COND *p); /** \brief destroys condition variable \param p reference to condition handle - + Upon completion *p holds 0. */ +YAZ_EXPORT void yaz_cond_destroy(YAZ_COND *p); +struct timeval; + /** \brief waits for condition \param p condition variable handle \param m mutex @@ -108,16 +112,19 @@ void yaz_cond_destroy(YAZ_COND *p); Semantics like pthread_cond_wait. */ -int yaz_cond_wait(YAZ_COND p, YAZ_MUTEX m, const struct timespec *abstime); +YAZ_EXPORT +int yaz_cond_wait(YAZ_COND p, YAZ_MUTEX m, const struct timeval *abstime); /** \brief unblock one thread waiting for block \param p condition variable handle */ +YAZ_EXPORT int yaz_cond_signal(YAZ_COND p); /** \brief unblock all threads waiting for block \param p condition variable handle */ +YAZ_EXPORT int yaz_cond_broadcast(YAZ_COND p); YAZ_END_CDECL