apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aaron Bannert <aa...@clove.org>
Subject [PATCH] convert win32's fileio mutex calls to new api
Date Wed, 21 Nov 2001 04:44:22 GMT
This patch converts the INTRAPROCESS locks to apr_thread_mutex_t calls
in win32's fileio routines. I have no way to test this, so could one of
you win32 gurus check it out for me?

-aaron


Index: file_io/win32/open.c
===================================================================
RCS file: /home/cvs/apr/file_io/win32/open.c,v
retrieving revision 1.84
diff -u -r1.84 open.c
--- file_io/win32/open.c	2001/10/10 17:36:12	1.84
+++ file_io/win32/open.c	2001/11/21 04:28:26
@@ -58,6 +58,7 @@
 #include "apr_general.h"
 #include "apr_strings.h"
 #include "apr_portable.h"
+#include "apr_thread_mutex.h"
 #include <errno.h>
 #include <winbase.h>
 #include <string.h>
@@ -268,7 +269,8 @@
     if (flag & APR_BUFFERED) {
         (*new)->buffered = 1;
         (*new)->buffer = apr_palloc(cont, APR_FILE_BUFSIZE);
-        rv = apr_lock_create(&(*new)->mutex, APR_MUTEX, APR_INTRAPROCESS, NULL, cont);
+        rv = apr_thread_mutex_create(&(*new)->mutex, APR_THREAD_MUTEX_DEFAULT,
+                                     cont);
 
         if (rv) {
             if (file_cleanup(*new) == APR_SUCCESS) {
@@ -314,7 +316,7 @@
         apr_pool_cleanup_kill(file->cntxt, file, file_cleanup);
 
         if (file->buffered)
-            apr_lock_destroy(file->mutex);
+            apr_thread_mutex_destroy(file->mutex);
 
         return APR_SUCCESS;
     }
@@ -460,4 +462,4 @@
 
 APR_DECLARE_UNSET_INHERIT(file) {
     return;
-}
\ No newline at end of file
+}
Index: file_io/win32/readwrite.c
===================================================================
RCS file: /home/cvs/apr/file_io/win32/readwrite.c,v
retrieving revision 1.62
diff -u -r1.62 readwrite.c
--- file_io/win32/readwrite.c	2001/10/16 12:24:33	1.62
+++ file_io/win32/readwrite.c	2001/11/21 04:28:27
@@ -184,7 +184,7 @@
         apr_size_t blocksize;
         apr_size_t size = *len;
 
-        apr_lock_acquire(thefile->mutex);
+        apr_thread_mutex_lock(thefile->mutex);
 
         if (thefile->direction == 1) {
             apr_file_flush(thefile);
@@ -222,7 +222,7 @@
         if (*len) {
             rv = APR_SUCCESS;
         }
-        apr_lock_release(thefile->mutex);
+        apr_thread_mutex_unlock(thefile->mutex);
     } else {  
         /* Unbuffered i/o */
         apr_size_t nbytes;
@@ -243,7 +243,7 @@
         apr_size_t blocksize;
         apr_size_t size = *nbytes;
 
-        apr_lock_acquire(thefile->mutex);
+        apr_thread_mutex_lock(thefile->mutex);
 
         if (thefile->direction == 0) {
             // Position file pointer for writing at the offset we are logically reading from
@@ -268,7 +268,7 @@
             size -= blocksize;
         }
 
-        apr_lock_release(thefile->mutex);
+        apr_thread_mutex_unlock(thefile->mutex);
         return rv;
     } else {
         if (thefile->pOverlapped && !thefile->pipe) {
Index: include/arch/win32/fileio.h
===================================================================
RCS file: /home/cvs/apr/include/arch/win32/fileio.h,v
retrieving revision 1.59
diff -u -r1.59 fileio.h
--- include/arch/win32/fileio.h	2001/11/12 16:58:37	1.59
+++ include/arch/win32/fileio.h	2001/11/21 04:28:27
@@ -60,7 +60,7 @@
 #include "apr_pools.h"
 #include "apr_general.h"
 #include "apr_tables.h"
-#include "apr_lock.h"
+#include "apr_thread_mutex.h"
 #include "apr_file_io.h"
 #include "apr_file_info.h"
 #include "apr_errno.h"
@@ -200,7 +200,7 @@
     apr_size_t dataRead;       // amount of valid data read into buffer
     int direction;             // buffer being used for 0 = read, 1 = write
     apr_off_t filePtr;         // position in file of handle
-    apr_lock_t *mutex;         // mutex semaphore, must be owned to access the above fields
+    apr_thread_mutex_t *mutex; // mutex semaphore, must be owned to access the above fields
 
     /* Pipe specific info */    
 };

Mime
View raw message