Hi Dimitris,
On Jan 20, 2011, at 8:05 AM, Dimitris Servis wrote:
> Hi all,
>
> one of the major problems that I have in synchronizing reads and writes with
> HDF5 files and locks is the update of metadata. Here' s some pseudoflows that
> show the problem:
>
> Process 1:
> 1. Create file file.h5
> 2. Start process 2
> 3. Wait until file can be locked
> 4. Read /dataset
>
> Process 2:
> 1. Open file file.h5
> 2. Get exclusive lock
> 3. Write /dataset
> 4. Unlock and close the file
>
> My locks work on the file handle returned by H5Fget_vfd_handle and always
> lock the first byte. This is the only way I could find to synchronize between
> threads and processes. this works fine so far, what I would like to do now is
> this: Process 1 at step (4) will not read the dataset, because the file
> handle in process 1 is opened before process B writes into the file. What I
> would like to do is have a way to "refresh" the metadata. The ways to do that
> are:
>
> 1. Close and reopen the file, but that will lose me the lock
> 2. Lock on an OS handle and then open the HDF5 handle. That will work on
> Linux but not windows as the HDF5 handle will not be able to read.
> 3. Do it in a VFD driver but then locking/unlocking is not controlled by the
> program.
>
> What I really would like to have is a function that simply forces the
> metadata to be re-read from the same open file handle. Is there any such
> function that is available for sharing? Otherwise I will try to write one.
We have implemented this functionality for the 1.10 release.
Quincey
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org