]> granicus.if.org Git - gc/commitdiff
Fix 'unused function GC_lock' compiler warning
authorIvan Maidanski <ivmai@mail.ru>
Wed, 29 May 2019 08:16:04 +0000 (11:16 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 29 May 2019 08:16:04 +0000 (11:16 +0300)
* include/private/gc_locks.h [GC_PTHREADS && !USE_SPIN_LOCK] (GC_lock):
Declare only if USE_PTHREAD_LOCKS and (GC_ASSERTIONS or
not NO_PTHREAD_TRYLOCK).
* pthread_support.c [!USE_SPIN_LOCK] (GC_lock): Define only if
USE_PTHREAD_LOCKS and (not NO_PTHREAD_TRYLOCK or GC_ASSERTIONS).

include/private/gc_locks.h
pthread_support.c

index 152ad9d3537219fb29a729cc86e09746524c9722..5b9ef4f396c5279a45296313bdfd966fd0858d42 100644 (file)
        EXTERN_C_BEGIN
        GC_EXTERN pthread_mutex_t GC_allocate_ml;
 #      ifdef GC_ASSERTIONS
+         GC_INNER void GC_lock(void);
 #        define UNCOND_LOCK() { GC_ASSERT(I_DONT_HOLD_LOCK()); \
                                 GC_lock(); SET_LOCK_HOLDER(); }
 #        define UNCOND_UNLOCK() \
 #        if defined(NO_PTHREAD_TRYLOCK)
 #          define UNCOND_LOCK() pthread_mutex_lock(&GC_allocate_ml)
 #        else
+           GC_INNER void GC_lock(void);
 #          define UNCOND_LOCK() \
               { if (0 != pthread_mutex_trylock(&GC_allocate_ml)) \
                   GC_lock(); }
 #        define EXIT_GC() (void)(GC_collecting = FALSE)
 #      endif
 #    endif
-     GC_INNER void GC_lock(void);
 #  endif /* GC_PTHREADS */
 #  if defined(GC_ALWAYS_MULTITHREADED) \
       && (defined(USE_PTHREAD_LOCKS) || defined(USE_SPIN_LOCK))
index 0b2af4acf0dcb331e6e33128acb44232421c9b80..ae1c7f3069033a4176065148d806353e5f898ea6 100644 (file)
@@ -2176,22 +2176,25 @@ yield:
     }
 }
 
-#else  /* !USE_SPIN_LOCK */
+#elif defined(USE_PTHREAD_LOCKS)
 
-GC_INNER void GC_lock(void)
-{
-#ifndef NO_PTHREAD_TRYLOCK
-    if (1 == GC_nprocs || is_collecting()) {
+# ifndef NO_PTHREAD_TRYLOCK
+    GC_INNER void GC_lock(void)
+    {
+      if (1 == GC_nprocs || is_collecting()) {
         pthread_mutex_lock(&GC_allocate_ml);
-    } else {
+      } else {
         GC_generic_lock(&GC_allocate_ml);
+      }
     }
-#else  /* !NO_PTHREAD_TRYLOCK */
-    pthread_mutex_lock(&GC_allocate_ml);
-#endif /* !NO_PTHREAD_TRYLOCK */
-}
+# elif defined(GC_ASSERTIONS)
+    GC_INNER void GC_lock(void)
+    {
+      pthread_mutex_lock(&GC_allocate_ml);
+    }
+# endif
 
-#endif /* !USE_SPIN_LOCK */
+#endif /* !USE_SPIN_LOCK && USE_PTHREAD_LOCKS */
 
 #ifdef PARALLEL_MARK