Grid Community Toolkit  6.2.1566487665 (tag: v6.2.20190829)
globus_thread_rmutex.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
22 #ifndef GLOBUS_THREAD_RMUTEX_H
23 #define GLOBUS_THREAD_RMUTEX_H
24 
25 #include "globus_common_include.h"
26 #include "globus_thread.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
38 typedef struct
39 {
40  globus_mutex_t mutex;
41  globus_cond_t cond;
42  globus_thread_t thread_id;
43  int level;
44  int waiting;
46 
51 typedef int globus_rmutexattr_t;
52 
53 int
55  globus_rmutex_t * rmutex,
56  globus_rmutexattr_t * attr);
57 
58 int
60  globus_rmutex_t * rmutex);
61 
62 int
64  globus_rmutex_t * rmutex);
65 
66 int
68  globus_rmutex_t * rmutex);
69 
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 #endif /* GLOBUS_THREAD_RMUTEX_H */
Thread ID.
Definition: globus_thread.h:71
Recursive Mutex.
Definition: globus_thread_rmutex.h:38
int globus_rmutex_init(globus_rmutex_t *rmutex, globus_rmutexattr_t *attr)
Initialize a recursive mutex.
Definition: globus_thread_rmutex.c:43
Globus Threading Abstraction.
int globus_rmutex_destroy(globus_rmutex_t *rmutex)
Destroy a recursive mutex.
Definition: globus_thread_rmutex.c:184
int globus_rmutex_unlock(globus_rmutex_t *rmutex)
Unlock a recursive mutex.
Definition: globus_thread_rmutex.c:141
Mutex.
Definition: globus_thread.h:107
Condition variable.
Definition: globus_thread.h:124
int globus_rmutex_lock(globus_rmutex_t *rmutex)
Lock a recursive mutex.
Definition: globus_thread_rmutex.c:95
int globus_rmutexattr_t
Recursive mutex attribute.
Definition: globus_thread_rmutex.h:51
Include System Headers.