Another point: AFAIK HDF5 does not launch any threads. It only uses some synchronization methods of pthreads. These could very easily be implemented and skip the need for yet another library.
Best -- dimitris 2010/3/19 Dimitris Servis <[email protected]> > Scott, > > I compiled pthreads for 64bit almost out of the box. It works fine so far > with HDF5. Note that I linked statically in order not to mess with any other > library. To make it work, you need to patch pthreads (see below). I also > added the following lines in H5TS.c in H5TS_first_thread_init, but that's > only for static linking > > #ifdef _WIN32 > #ifdef PTW32_STATIC_LIB > pthread_win32_process_attach_np(); > #endif > #endif > > HTH > > -- dimitris > > Index: implement.h > =================================================================== > > --- implement.h (revision 19389) > +++ implement.h (revision 19390) > @@ -667,8 +667,12 @@ > * See ptw32_InterlockedCompareExchange.c > */ > #ifndef PTW32_INTERLOCKED_COMPARE_EXCHANGE > +#ifdef _WIN64 > > +#define PTW32_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange > +#else > #define PTW32_INTERLOCKED_COMPARE_EXCHANGE > ptw32_interlocked_compare_exchange > #endif > +#endif > > #ifndef PTW32_INTERLOCKED_EXCHANGE > > #define PTW32_INTERLOCKED_EXCHANGE InterlockedExchange > > Index: ptw32_InterlockedCompareExchange.c > =================================================================== > --- ptw32_InterlockedCompareExchange.c (revision 19389) > > +++ ptw32_InterlockedCompareExchange.c (revision 19390) > @@ -34,6 +34,7 @@ > * if not, write to the Free Software Foundation, Inc., > * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA > */ > > +#ifndef _WIN64 > > #include "pthread.h" > #include "implement.h" > @@ -301,3 +302,5 @@ > #endif > > #endif > + > +#endif > > Index: pthread_win32_attach_detach_np.c > =================================================================== > > --- pthread_win32_attach_detach_np.c (revision 19389) > +++ pthread_win32_attach_detach_np.c (revision 19390) > @@ -91,6 +91,14 @@ > > #endif > > +#ifdef _WIN64 > +/* > + * InterlockedCompareExchange routine in WIN64 is an intrinsic function. > > + * See PTW32_INTERLOCKED_COMPARE_EXCHANGE implement.h > + */ > + > +#else > + > #ifdef WINCE > > /* > @@ -143,6 +151,7 @@ > { > ptw32_features |= PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE; > > } > +#endif > > /* > > * Load QUSEREX.DLL and try to get address of QueueUserAPCEx > > > > 2010/3/19 Mitchell, Scott - IS <[email protected]> > >> I implemented the thread safe version of HDF5 for Windows to get past >> some issues writing to HDF5 files from different threads. I hoped I didn’t >> need to bother since each thread had exclusive access to one file, but >> testing proved otherwise. >> >> >> >> So the thread-safe option uses PThreads (32 bit). This code will shortly >> be moving to a 64 bit platform. A quick search didn’t turn up a 64 bit >> variant. Is there a way to implement this in 64 bit? >> >> >> >> >> >> Scott >> >> ------------------------------ >> This e-mail and any files transmitted with it may be proprietary and are >> intended solely for the use of the individual or entity to whom they are >> addressed. If you have received this e-mail in error please notify the >> sender. >> Please note that any views or opinions presented in this e-mail are solely >> those of the author and do not necessarily represent those of ITT >> Corporation. The recipient should check this e-mail and any attachments for >> the presence of viruses. ITT accepts no liability for any damage caused by >> any virus transmitted by this e-mail. >> >> _______________________________________________ >> Hdf-forum is for HDF software users discussion. >> [email protected] >> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org >> >> >
_______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
