You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by aa...@apache.org on 2002/02/18 03:20:07 UTC

cvs commit: apr/locks/unix global_mutex.c

aaron       02/02/17 18:20:07

  Modified:    include/arch/unix global_mutex.h
               locks/unix global_mutex.c
  Log:
  Make apr_global_mutex_t work on systems w/o APR_HAS_THREADS.
  If you don't have threads, you don't need to use cross-thread
  mutual exclusion, so this becomes essentially apr_proc_mutex_t.
  
  Revision  Changes    Path
  1.2       +2 -0      apr/include/arch/unix/global_mutex.h
  
  Index: global_mutex.h
  ===================================================================
  RCS file: /home/cvs/apr/include/arch/unix/global_mutex.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- global_mutex.h	18 Feb 2002 01:16:03 -0000	1.1
  +++ global_mutex.h	18 Feb 2002 02:20:07 -0000	1.2
  @@ -66,7 +66,9 @@
   struct apr_global_mutex_t {
       apr_pool_t *pool;
       apr_proc_mutex_t *proc_mutex;
  +#if APR_HAS_THREADS
       apr_thread_mutex_t *thread_mutex;
  +#endif /* APR_HAS_THREADS */
   };
   
   #endif  /* GLOBAL_MUTEX_H */
  
  
  
  1.2       +10 -2     apr/locks/unix/global_mutex.c
  
  Index: global_mutex.c
  ===================================================================
  RCS file: /home/cvs/apr/locks/unix/global_mutex.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- global_mutex.c	18 Feb 2002 01:16:04 -0000	1.1
  +++ global_mutex.c	18 Feb 2002 02:20:07 -0000	1.2
  @@ -58,18 +58,19 @@
   #include "apr_proc_mutex.h"
   #include "apr_thread_mutex.h"
   
  -
   static apr_status_t global_mutex_cleanup(void *data)
   {
       apr_global_mutex_t *m = (apr_global_mutex_t *)data;
       apr_status_t rv;
   
  +#if APR_HAS_THREADS
       if (m->thread_mutex) {
           rv = apr_thread_mutex_destroy(m->thread_mutex);
           if (rv != APR_SUCCESS) {
               return rv;
           }
       }
  +#endif /* APR_HAS_THREADS */
       rv = apr_proc_mutex_destroy(m->proc_mutex);
       if (rv != APR_SUCCESS) {
          return rv;
  @@ -93,6 +94,7 @@
           return rv;
       }
   
  +#if APR_HAS_THREADS
       if (m->proc_mutex->inter_meth->flags & APR_PROCESS_LOCK_MECH_IS_GLOBAL) {
           m->thread_mutex = NULL; /* We don't need a thread lock. */
       }
  @@ -103,6 +105,7 @@
               return rv;
           }
       }
  +#endif /* APR_HAS_THREADS */
   
       apr_pool_cleanup_register(m->pool, (void *)m,
                                 global_mutex_cleanup, apr_pool_cleanup_null);
  @@ -122,12 +125,14 @@
   {
       apr_status_t rv;
   
  +#if APR_HAS_THREADS
       if (mutex->thread_mutex) {
           rv = apr_thread_mutex_lock(mutex->thread_mutex);
           if (rv != APR_SUCCESS) {
               return rv;
           }
       }
  +#endif /* APR_HAS_THREADS */
       rv = apr_proc_mutex_lock(mutex->proc_mutex);
       if (rv != APR_SUCCESS) {
           return rv;
  @@ -139,12 +144,14 @@
   {
       apr_status_t rv;
   
  +#if APR_HAS_THREADS
       if (mutex->thread_mutex) {
           rv = apr_thread_mutex_trylock(mutex->thread_mutex);
           if (rv != APR_SUCCESS) {
               return rv;
           }
       }
  +#endif /* APR_HAS_THREADS */
       rv = apr_proc_mutex_trylock(mutex->proc_mutex);
       if (rv != APR_SUCCESS) {
           return rv;
  @@ -160,12 +167,14 @@
       if (rv != APR_SUCCESS) {
           return rv;
       }
  +#if APR_HAS_THREADS
       if (mutex->thread_mutex) {
           rv = apr_thread_mutex_unlock(mutex->thread_mutex);
           if (rv != APR_SUCCESS) {
               return rv;
           }
       }
  +#endif /* APR_HAS_THREADS */
       return APR_SUCCESS;
   }
   
  @@ -175,4 +184,3 @@
   }
   
   APR_POOL_IMPLEMENT_ACCESSOR(global_mutex);
  -