summaryrefslogtreecommitdiffstats
path: root/src/H5TSprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2000-05-19 14:51:50 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2000-05-19 14:51:50 (GMT)
commitd894ed6d0dd5e750566d783f399213c84b40345e (patch)
tree46c5c8b417de7d7956b7e161a3a93bc5db1fad42 /src/H5TSprivate.h
parentc0d424e947ed9f996f66b32dab8e47cda201d1fa (diff)
downloadhdf5-d894ed6d0dd5e750566d783f399213c84b40345e.zip
hdf5-d894ed6d0dd5e750566d783f399213c84b40345e.tar.gz
hdf5-d894ed6d0dd5e750566d783f399213c84b40345e.tar.bz2
[svn-r2276] Modifed thread-safety code to more closely align with rest of HDF5 coding
standards.
Diffstat (limited to 'src/H5TSprivate.h')
-rw-r--r--src/H5TSprivate.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/H5TSprivate.h b/src/H5TSprivate.h
new file mode 100644
index 0000000..601b6f0
--- /dev/null
+++ b/src/H5TSprivate.h
@@ -0,0 +1,54 @@
+/*-------------------------------------------------------------------------
+ * Copyright (C) 2000 National Center for Supercomputing Applications.
+ * All rights reserved.
+ *
+ *-------------------------------------------------------------------------
+ *
+ * Created: H5TSprivate.h
+ * May 2 2000
+ * Chee Wai LEE
+ *
+ * Purpose: Private non-prototype header.
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef _H5TSprivate_H
+#define _H5TSprivate_H
+
+/* Public headers needed by this file */
+#ifdef LATER
+#include <H5TSpublic.h> /*Public API prototypes */
+#endif /* LATER */
+
+/* Library level data structures */
+
+typedef struct H5TS_mutex_struct {
+ pthread_t owner_thread; /* current lock owner */
+ pthread_mutex_t atomic_lock; /* lock for atomicity of new mechanism */
+ pthread_cond_t cond_var; /* condition variable */
+ unsigned int lock_count;
+} H5TS_mutex_t;
+
+/* Extern global variables */
+extern pthread_once_t H5TS_first_init_g;
+extern pthread_key_t H5TS_errstk_key_g;
+
+#if defined c_plusplus || defined __cplusplus
+extern "C"
+{
+#endif /* c_plusplus || __cplusplus */
+
+__DLL__ void H5TS_first_thread_init(void);
+__DLL__ void H5TS_mutex_lock(H5TS_mutex_t *mutex);
+__DLL__ void H5TS_mutex_unlock(H5TS_mutex_t *mutex);
+__DLL__ void H5TS_cancel_count_inc(void);
+__DLL__ void H5TS_cancel_count_dec(void);
+
+#if defined c_plusplus || defined __cplusplus
+}
+#endif /* c_plusplus || __cplusplus */
+
+#endif /* _H5TSprivate_H */
+