http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25830

--- Comment #4 from Janne Blomqvist <jb at gcc dot gnu.org> 2011-04-25 16:41:26 
UTC ---
Some writings arguing that POSIX locking is more or less fundamentally broken:

http://0pointer.de/blog/projects/locking.html

http://0pointer.de/blog/projects/locking2.html

http://www.samba.org/samba/news/articles/low_point/tale_two_stds_os2.html

AFAICS, if gfortran is to eventually support multi-image IO in the context of
Co-array Fortran as in the TR

http://j3-fortran.org/doc/meeting/192/10-166.pdf ,

it is possible to implement all of this without relying on POSIX locking
(fcntl) for synchronization, instead using the existing IPC channels that
co-arrays provide. 

That being said, it might be necessary to do a fcntl lock+unlock at appropriate
places in order to force the NFS client to flush dirty bytes to the server;
alternatives to using fcntl() to force NFS flushing is fsync or a close+reopen
of the POSIX file descriptor. Close+reopen does have the nice property of being
portable and not relying on a working NFS locking implementation.

FWIW, one strange thing about the 10-166 TR is that there is no mention of
stream access, which AFAICS is suited to parallel access just like direct
access.

Reply via email to