Files
harbour-core/ChangeLog.txt
Przemysław Czerpak 30d0f5bd78 2015-11-13 10:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* src/rtl/filebuf.c
    ! fixed file handle sharing in POSIX systems when writeonly mode is used
    ! fixed accessing files in writeonly mode in POSIX systems which use
      fcntl() locks for DENY_* flag emulation.
    ! added for POSIX systems protection against potential race condition in
      MT programs and file open and close operations. Now the whole low level
      open and close operations are covered by mutex. It means that they are
      fully serialized so in case of remote file access (i.e. NFS or SMBFS)
      it may reduce the performance in applications which simultaneously open
      and closes many different files in different threads but its necessary.
      For local file access it should not create noticeable scalability
      problems. In my Linux box Harbour can open and close in MT mode more
      then 250000 files per second.
    % use different mutexes for file open/close and file lock operations to
      not reduce the lock performance by potentially slow open() operation
      in POSIX systems.
    ; NOTE: please remember that DENY_* flag emulation in POSIX systems
            emulates only shared and exclusive modes so if any of
            FO_DENYREAD, FO_DENYWRITE or FO_EXCLUSIVE flag is used then
            it effectively works like FO_EXCLUSIVE in POSIX system and
            is not mandatory for other processes so it blocks only
            other Harbour applications which use Harbour virtual handles
            (RDD code, hb_vf*() functions)

  * src/rtl/filesys.c
    * do not convert exclusive lock to shared one when file is open in
      readonly mode on POSIX system using flock() for DENY_* flag emulation.
      Now HB_USE_BSDLOCKS is enabled only for Linux and it's documented that
      this implementation allow to use shared and exclusive locks regardless of
      file open mode.
    % do not create file name copy in hb_fsExtOpen() when passed parameters
      does not force file name modification
2015-11-13 10:29:25 +01:00

9.1 MiB

The file is too large to be shown. View Raw