MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NdbCondition.h
1 /*
2  Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 
18 #ifndef NDB_CONDITION_H
19 #define NDB_CONDITION_H
20 
21 #include "NdbMutex.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
28 {
29  pthread_cond_t cond;
30 };
31 
37 struct NdbCondition* NdbCondition_Create(void);
38 
44 int NdbCondition_Init(struct NdbCondition* p_cond);
45 
54 int NdbCondition_Wait(struct NdbCondition* p_cond,
55  NdbMutex* p_mutex);
56 
57 /*
58  * Wait for a condition with timeout, allows a thread to
59  * wait for a condition and atomically releases the associated mutex.
60  *
61  * @param p_cond - pointer to the condition structure
62  * @param p_mutex - pointer to the mutex structure
63  * @param msec - Wait for msec milli seconds the most
64  * @return 0 = succeeded, 1 = failed
65  * @
66  */
67 int
68 NdbCondition_WaitTimeout(struct NdbCondition* p_cond,
69  NdbMutex* p_mutex,
70  int msec);
71 /*
72  * same as NdbCondition_WaitTimeout only that
73  * endtime is a absolute time computed using
74  * NdbCondition_ComputeAbsTime
75  */
76 int
77 NdbCondition_WaitTimeoutAbs(struct NdbCondition* p_cond,
78  NdbMutex* p_mutex,
79  const struct timespec * endtime);
80 
85 void
86 NdbCondition_ComputeAbsTime(struct timespec * dst, unsigned ms);
87 
94 int NdbCondition_Signal(struct NdbCondition* p_cond);
95 
96 
103 int NdbCondition_Broadcast(struct NdbCondition* p_cond);
104 
111 int NdbCondition_Destroy(struct NdbCondition* p_cond);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif
118 
119