bjh         99/11/06 22:58:52

  Modified:    src/lib/apr/file_io/os2 readwrite.c
  Log:
  OS/2: make ap_read/ap_write thread safe when buffered.
  
  Revision  Changes    Path
  1.8       +6 -0      apache-2.0/src/lib/apr/file_io/os2/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/readwrite.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- readwrite.c       1999/11/05 21:16:16     1.7
  +++ readwrite.c       1999/11/07 06:58:50     1.8
  @@ -75,6 +75,8 @@
           ULONG blocksize;
           ULONG size = *nbytes;
   
  +        DosEnterCritSec();
  +
           if (thefile->direction == 1) {
               ap_flush(thefile);
               thefile->bufpos = 0;
  @@ -102,6 +104,7 @@
           }
   
           *nbytes = rc == 0 ? pos - (char *)buf : 0;
  +        DosExitCritSec();
           return os2errno(rc);
       } else {
           rc = DosRead(thefile->filedes, buf, *nbytes, &bytesread);
  @@ -139,6 +142,8 @@
           int blocksize;
           int size = *nbytes;
   
  +        DosEnterCritSec();
  +
           if ( thefile->direction == 0 ) {
               // Position file pointer for writing at the offset we are 
logically reading from
               ULONG offset = thefile->filePtr - thefile->dataRead + 
thefile->bufpos;
  @@ -159,6 +164,7 @@
               size -= blocksize;
           }
   
  +        DosExitCritSec();
           return os2errno(rc);
       } else {
           rc = DosWrite(thefile->filedes, buf, *nbytes, &byteswritten);
  
  
  

Reply via email to