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.