]> err.no Git - varnish/commitdiff
Make logging of mutex operations or just contests controlled under diag_bitmap
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Tue, 19 Feb 2008 12:05:41 +0000 (12:05 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Tue, 19 Feb 2008 12:05:41 +0000 (12:05 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2518 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/mgt_param.c

index 651dc18881dda862de22fe84261c2cbbee401547..5d1396ae3a00ad5f14f3d7ea5c50c6579c8e23e1 100644 (file)
@@ -592,24 +592,19 @@ char *WS_Snapshot(struct ws *ws);
 /* rfc2616.c */
 int RFC2616_cache_policy(const struct sess *sp, const struct http *hp);
 
-#if 1
-#define MTX                    pthread_mutex_t
-#define MTX_INIT(foo)          AZ(pthread_mutex_init(foo, NULL))
-#define MTX_DESTROY(foo)       AZ(pthread_mutex_destroy(foo))
-#define LOCK(foo)              AZ(pthread_mutex_lock(foo))
-#define UNLOCK(foo)            AZ(pthread_mutex_unlock(foo))
-#else
 #define MTX                    pthread_mutex_t
 #define MTX_INIT(foo)          AZ(pthread_mutex_init(foo, NULL))
 #define MTX_DESTROY(foo)       AZ(pthread_mutex_destroy(foo))
 #define LOCK(foo)                                      \
 do {                                                   \
-       if (pthread_mutex_trylock(foo)) {               \
+       if (!(params->diag_bitmap & 0x18)) {            \
+               AZ(pthread_mutex_lock(foo));            \
+       } else if (pthread_mutex_trylock(foo)) {        \
                VSL(SLT_Debug, 0,                       \
                    "MTX_CONTEST(%s,%s,%d," #foo ")",   \
                    __func__, __FILE__, __LINE__);      \
                AZ(pthread_mutex_lock(foo));            \
-       } else if (1) {                                 \
+       } else if (params->diag_bitmap & 0x8) {         \
                VSL(SLT_Debug, 0,                       \
                    "MTX_LOCK(%s,%s,%d," #foo ")",      \
                    __func__, __FILE__, __LINE__);      \
@@ -618,12 +613,11 @@ do {                                                      \
 #define UNLOCK(foo)                                    \
 do {                                                   \
        AZ(pthread_mutex_unlock(foo));                  \
-       if (1)                                          \
+       if (params->diag_bitmap & 0x8)                  \
                VSL(SLT_Debug, 0,                       \
                    "MTX_UNLOCK(%s,%s,%d," #foo ")",    \
                    __func__, __FILE__, __LINE__);      \
 } while (0);
-#endif
 
 #if defined(HAVE_PTHREAD_MUTEX_ISOWNED_NP)
 #define ALOCKED(mutex)         AN(pthread_mutex_isowned_np((mutex)))
index b89d737933d33431e345fdc847a0a89ab55b407a..4cdca97cde8d8791a0006086d6df5652c5d367cf 100644 (file)
@@ -641,6 +641,8 @@ static const struct parspec parspec[] = {
                "  0x00000001 - CNT_Session states.\n"
                "  0x00000002 - workspace debugging.\n"
                "  0x00000004 - kqueue debugging.\n"
+               "  0x00000008 - mutex logging.\n"
+               "  0x00000010 - mutex contests.\n"
                "Use 0x notation and do the bitor in your head :-)\n",
                0,
                "0", "bitmap" },