Why do we need to call SetFilePointer to each call of apr_file_write()? In
the common case where only threads in a single process write to a file,
calling SetFilePointer is a waste of cycles. If threads from multiple
processes are writing to a file, then we are broken unless the application
explicitly serializes access to apr_file_write()

Index: readwrite.c
===================================================================
RCS file: /home/cvs/apr/file_io/win32/readwrite.c,v
retrieving revision 1.69
diff -u -r1.69 readwrite.c
--- readwrite.c 15 Jul 2002 07:24:34 -0000      1.69
+++ readwrite.c 20 Oct 2002 01:28:57 -0000
@@ -307,9 +307,6 @@
             thefile->pOverlapped->Offset     = (DWORD)thefile->filePtr;
             thefile->pOverlapped->OffsetHigh = (DWORD)(thefile->filePtr >>
32);
         }
-        else if (!thefile->pipe && thefile->append) {
-            SetFilePointer(thefile->filehand, 0, NULL, FILE_END);
-        }
         if (WriteFile(thefile->filehand, buf, *nbytes, &bwrote,
                       thefile->pOverlapped)) {
             *nbytes = bwrote;

Reply via email to