summaryrefslogtreecommitdiffstats
path: root/test/ttsafe_dcreate.c
diff options
context:
space:
mode:
authorMike McGreevy <mamcgree@hdfgroup.org>2010-09-10 16:15:34 (GMT)
committerMike McGreevy <mamcgree@hdfgroup.org>2010-09-10 16:15:34 (GMT)
commitb7c2d18029df6d724e44b74c8f49bb7aa1e2f02b (patch)
treec3dd326b9b8ed4746b57165165713ae9b046c62b /test/ttsafe_dcreate.c
parent47c792faa033c4c149b2c5d4dd0e70e4f2b0e3d2 (diff)
downloadhdf5-b7c2d18029df6d724e44b74c8f49bb7aa1e2f02b.zip
hdf5-b7c2d18029df6d724e44b74c8f49bb7aa1e2f02b.tar.gz
hdf5-b7c2d18029df6d724e44b74c8f49bb7aa1e2f02b.tar.bz2
[svn-r19367] Purpose:
Add windows threads support to HDF5. Description: Added calls to the windows threads library to the H5TS layer, and wrapped most calls to either pthreads or windows threads library with portable H5TS-style defines. Modified tests to use portable function definitions as well. This can be configured via CMake with the HDF5_ENABLE_THREADSAFE option, and should work on windows vista and later operating systems. Tested: h5committest, plus threadsafe with pthreads on jam and amani, and tested on a Windows Vista VM with threadsafe using windows threads.
Diffstat (limited to 'test/ttsafe_dcreate.c')
-rw-r--r--test/ttsafe_dcreate.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/test/ttsafe_dcreate.c b/test/ttsafe_dcreate.c
index 35453ad..f83332d 100644
--- a/test/ttsafe_dcreate.c
+++ b/test/ttsafe_dcreate.c
@@ -88,21 +88,21 @@ thread_info thread_out[NUM_THREAD];
*/
void tts_dcreate(void)
{
- /* Pthread definitions */
- pthread_t threads[NUM_THREAD];
+ /* thread definitions */
+ H5TS_thread_t threads[NUM_THREAD];
/* HDF5 data definitions */
hid_t file, dataset;
int datavalue, i;
- pthread_attr_t attribute;
+ H5TS_attr_t attribute;
int ret;
/* set pthread attribute to perform global scheduling */
- ret=pthread_attr_init(&attribute);
- assert(ret==0);
+ H5TS_attr_init(&attribute);
+
+ /* set thread scope to system */
#ifdef H5_HAVE_SYSTEM_SCOPE_THREADS
- ret=pthread_attr_setscope(&attribute, PTHREAD_SCOPE_SYSTEM);
- assert(ret==0);
+ H5TS_attr_setscope(&attribute, H5TS_SCOPE_SYSTEM);
#endif /* H5_HAVE_SYSTEM_SCOPE_THREADS */
/*
@@ -117,13 +117,11 @@ void tts_dcreate(void)
thread_out[i].id = i;
thread_out[i].file = file;
thread_out[i].dsetname = dsetname[i];
- ret=pthread_create(&threads[i], NULL, tts_dcreate_creator, &thread_out[i]);
- assert(ret==0);
+ threads[i] = H5TS_create_thread(tts_dcreate_creator, NULL, &thread_out[i]);
} /* end for */
for(i = 0;i < NUM_THREAD; i++) {
- ret = pthread_join(threads[i], NULL);
- assert(ret == 0);
+ H5TS_wait_for_thread(threads[i]);
} /* end for */
/* compare data to see if it is written correctly */
@@ -157,8 +155,7 @@ void tts_dcreate(void)
assert(ret >= 0);
/* Destroy the thread attribute */
- ret=pthread_attr_destroy(&attribute);
- assert(ret==0);
+ H5TS_attr_destroy(&attribute);
}
void *tts_dcreate_creator(void *_thread_data)