diff options
author | Mike McGreevy <mamcgree@hdfgroup.org> | 2010-09-10 16:15:34 (GMT) |
---|---|---|
committer | Mike McGreevy <mamcgree@hdfgroup.org> | 2010-09-10 16:15:34 (GMT) |
commit | b7c2d18029df6d724e44b74c8f49bb7aa1e2f02b (patch) | |
tree | c3dd326b9b8ed4746b57165165713ae9b046c62b /test/ttsafe_dcreate.c | |
parent | 47c792faa033c4c149b2c5d4dd0e70e4f2b0e3d2 (diff) | |
download | hdf5-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.c | 23 |
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) |