NdbCondition.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NDB_CONDITION_H
  14. #define NDB_CONDITION_H
  15. #include "NdbMutex.h"
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. struct NdbCondition;
  20. /**
  21.  * Create a condition
  22.  *
  23.  * returnvalue: pointer to the condition structure
  24.  */
  25. struct NdbCondition* NdbCondition_Create(void);
  26. /**
  27.  * Wait for a condition, allows a thread to wait for
  28.  * a condition and atomically releases the associated mutex.
  29.  *
  30.  * p_cond: pointer to the condition structure
  31.  * p_mutex: pointer to the mutex structure
  32.  * returnvalue: 0 = succeeded, 1 = failed
  33.  */
  34. int NdbCondition_Wait(struct NdbCondition* p_cond,
  35.       NdbMutex* p_mutex);
  36. /*
  37.  * Wait for a condition with timeout, allows a thread to
  38.  *  wait for a condition and atomically releases the associated mutex.
  39.  *
  40.  * @param p_cond - pointer to the condition structure
  41.  * @param p_mutex - pointer to the mutex structure
  42.  * @param msec - Wait for msec milli seconds the most
  43.  * @return 0 = succeeded, 1 = failed
  44.  * @
  45.  */
  46. int
  47. NdbCondition_WaitTimeout(struct NdbCondition* p_cond,
  48.  NdbMutex* p_mutex,
  49.  int msec);
  50.   
  51. /**
  52.  * Signal a condition
  53.  *
  54.  * p_cond: pointer to the condition structure
  55.  * returnvalue: 0 = succeeded, 1 = failed
  56.  */
  57. int NdbCondition_Signal(struct NdbCondition* p_cond);
  58. /**
  59.  * Broadcast a condition
  60.  *
  61.  * p_cond: pointer to the condition structure
  62.  * returnvalue: 0 = succeeded, 1 = failed
  63.  */
  64. int NdbCondition_Broadcast(struct NdbCondition* p_cond);
  65. /**
  66.  * Destroy a condition
  67.  *
  68.  * p_cond: pointer to the condition structure
  69.  * returnvalue: 0 = succeeded, 1 = failed
  70.  */
  71. int NdbCondition_Destroy(struct NdbCondition* p_cond);
  72. #ifdef __cplusplus
  73. }
  74. #endif
  75. #endif