On Thu, 02 Oct 2008, Maurilio Longo wrote:

Hi Maurilio,

> it builds ok if I add
> #if defined( HB_OS_OS2 )
> #include <sys/stat.h>
> #define S_IREAD   S_IRUSR
> #define S_IWRITE  S_IWUSR
> #define S_IEXEC   S_IXUSR

Thank you very much for your help. I think we can make sth like:
   #ifndef S_IREAD
      #define S_IREAD   S_IRUSR
   #endif
   #ifndef S_IWRITE
      #define S_IWRITE  S_IWUSR
   #endif
   #ifndef S_IEXEC
      #define S_IEXEC   S_IXUSR
   #endif


> ssize_t  pread(int, void *, size_t, off_t);
> ssize_t  pwrite(int, const void *, size_t, off_t);
> after harbour headers have been included.
> Can this be ok, given a working pread/pwrint inside runtime dll?

With pread()/pwrite() I'm not sure. If there is no OS level API call
for such functionality then they functions internally have to use
globally positioned read/write functions. It will not help us because
hb_fsSeek is not protected by common with above functions critical
section (if any is used internally by library which emulates them)
so I think it will be better to not enable handle sharing for OS2.
Now it's enabled only for *nixes where it's a must due to POSIX lock
behavior. In the future if it's be necessary for pseudo exclusive mode
in cloned WA then we add our own synchronization code inside filebuf.c
At least we will be sure that it works ;-)

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to