]> err.no Git - varnish/commitdiff
Wrap mutex more completely so that experimentation becomes easier.
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 16 Sep 2006 15:54:56 +0000 (15:54 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 16 Sep 2006 15:54:56 +0000 (15:54 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@1029 d4fa192b-c00b-0410-8231-f00ffab90ce4

12 files changed:
varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_backend.c
varnish-cache/bin/varnishd/cache_cli.c
varnish-cache/bin/varnishd/cache_expire.c
varnish-cache/bin/varnishd/cache_hash.c
varnish-cache/bin/varnishd/cache_pool.c
varnish-cache/bin/varnishd/cache_session.c
varnish-cache/bin/varnishd/cache_vcl.c
varnish-cache/bin/varnishd/hash_classic.c
varnish-cache/bin/varnishd/hash_simple_list.c
varnish-cache/bin/varnishd/shmlog.c
varnish-cache/bin/varnishd/storage_file.c

index b9d9bea3700e862f4402056b9415cc1aab12f657..28973e91f151c561de92677f36687a2ed599344f 100644 (file)
@@ -439,8 +439,11 @@ int RFC2616_cache_policy(struct sess *sp, struct http *hp);
 #define UNLOCKSHM(foo) AZ(pthread_mutex_unlock(foo))
 
 #if 1
-#define LOCK(foo)      AZ(pthread_mutex_lock(foo))
-#define UNLOCK(foo)    AZ(pthread_mutex_unlock(foo))
+#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 LOCK(foo)                                      \
 do {                                                   \
index d4f769ac6a58e4a2de1559cac05b76199dd389f5..6033b54bc8d00e08514254f0968758d87cffa18c 100644 (file)
@@ -29,7 +29,7 @@
 
 static TAILQ_HEAD(,vbe_conn) vbe_head = TAILQ_HEAD_INITIALIZER(vbe_head);
 
-static pthread_mutex_t vbemtx;
+static MTX vbemtx;
 
 /*--------------------------------------------------------------------*/
 
@@ -293,5 +293,5 @@ void
 VBE_Init(void)
 {
 
-       AZ(pthread_mutex_init(&vbemtx, NULL));
+       MTX_INIT(&vbemtx);
 }
index 56b8503f1c42dd508c7e0e3ec2863316b4fbab8b..21793260aca03f42263a7fe70f9e94f3da49fff7 100644 (file)
@@ -70,6 +70,7 @@ CLI_Init(void)
        buf = malloc(lbuf);
        XXXAN(buf);
        nbuf = 0;
+       printf("CLI ready\n");
        while (1) {
                pfd[0].fd = heritage.fds[2];
                pfd[0].events = POLLIN;
index 0699178c99c38e617655bca978e2f542edca5da7..90c8207fc4a41f560e58ef02687d879a6c3af29a 100644 (file)
@@ -21,7 +21,7 @@
 
 static pthread_t exp_thread;
 static struct binheap *exp_heap;
-static pthread_mutex_t exp_mtx;
+static MTX exp_mtx;
 static unsigned expearly = 30;
 static TAILQ_HEAD(,object) exp_deathrow = TAILQ_HEAD_INITIALIZER(exp_deathrow);
 
@@ -181,7 +181,7 @@ void
 EXP_Init(void)
 {
 
-       AZ(pthread_mutex_init(&exp_mtx, NULL));
+       MTX_INIT(&exp_mtx);
        exp_heap = binheap_new(NULL, object_cmp, object_update);
        XXXAN(exp_heap);
        AZ(pthread_create(&exp_thread, NULL, exp_prefetch, NULL));
index 54010656040521bf80a65d227dbf69faefc1ee66..cda1381f156adf63595c5e319d771d170c5ca916 100644 (file)
@@ -60,7 +60,7 @@ HSH_Lookup(struct sess *sp)
                XXXAN(w->nobjhead);
                w->nobjhead->magic = OBJHEAD_MAGIC;
                TAILQ_INIT(&w->nobjhead->objects);
-               AZ(pthread_mutex_init(&w->nobjhead->mtx, NULL));
+               MTX_INIT(&w->nobjhead->mtx);
                VSL_stats->n_objecthead++;
        } else
                CHECK_OBJ_NOTNULL(w->nobjhead, OBJHEAD_MAGIC);
@@ -209,7 +209,7 @@ HSH_Deref(struct object *o)
        if (hash->deref(oh))
                return;
        assert(TAILQ_EMPTY(&oh->objects));
-       AZ(pthread_mutex_destroy(&oh->mtx));
+       MTX_DESTROY(&oh->mtx);
        VSL_stats->n_objecthead--;
        free(oh);
 }
index 75de3979155c135983ccfca0a96f3346dd5523bd..eb1b200a7cbd4213c8834165dc94082808f5306a 100644 (file)
@@ -29,7 +29,7 @@
 #include "cli_priv.h"
 #include "cache.h"
 
-static pthread_mutex_t wrk_mtx;
+static MTX wrk_mtx;
 
 /* Number of work requests queued in excess of worker threads available */
 static unsigned                wrk_overflow;
@@ -312,7 +312,7 @@ WRK_Init(void)
        pthread_t tp;
        int i;
 
-       AZ(pthread_mutex_init(&wrk_mtx, NULL));
+       MTX_INIT(&wrk_mtx);
 
        AZ(pthread_create(&tp, NULL, wrk_reaperthread, NULL));
        AZ(pthread_detach(tp));
index 0e9ed0ca656f25a2231bbe88872c7c9a31d609f4..d2deff010f3e30427573e40eb914db470939b1c6 100644 (file)
@@ -57,9 +57,9 @@ static unsigned ses_qp;
 
 TAILQ_HEAD(srcaddrhead ,srcaddr);
 static struct srcaddrhead      srcaddr_hash[CLIENT_HASH];
-static pthread_mutex_t         ses_mtx;
-static pthread_mutex_t         stat_mtx;
-static pthread_mutex_t         ses_mem_mtx;
+static MTX                     ses_mtx;
+static MTX                     stat_mtx;
+static MTX                     ses_mem_mtx;
 
 /*--------------------------------------------------------------------
  * Assign a srcaddr to this session.
@@ -288,7 +288,7 @@ SES_Init()
 
        for (i = 0; i < CLIENT_HASH; i++)
                TAILQ_INIT(&srcaddr_hash[i]);
-       AZ(pthread_mutex_init(&ses_mtx, NULL));
-       AZ(pthread_mutex_init(&stat_mtx, NULL));
-       AZ(pthread_mutex_init(&ses_mem_mtx, NULL));
+       MTX_INIT(&ses_mtx);
+       MTX_INIT(&stat_mtx);
+       MTX_INIT(&ses_mem_mtx);
 }
index 377ed4d93a0981d9df61bc36557dd249effc9e9b..19647b325e6e038c9487035b2296d02bb12e5fc4 100644 (file)
@@ -37,7 +37,7 @@ static TAILQ_HEAD(, vcls)     vcl_head =
 
 static struct vcls             *vcl_active; /* protected by vcl_mtx */
 
-static pthread_mutex_t         vcl_mtx;
+static MTX                     vcl_mtx;
 
 /*--------------------------------------------------------------------*/
 
@@ -284,5 +284,5 @@ void
 VCL_Init()
 {
 
-       AZ(pthread_mutex_init(&vcl_mtx, NULL));
+       MTX_INIT(&vcl_mtx);
 }
index 340967756c8bea4b9d5fce7985af61f627d6404d..088c7d24efddf3ce25eccf2c98cd1f6275c4a96c 100644 (file)
@@ -31,7 +31,7 @@ struct hcl_hd {
        unsigned                magic;
 #define HCL_HEAD_MAGIC         0x0f327016
        TAILQ_HEAD(, hcl_entry) head;
-       pthread_mutex_t         mtx;
+       MTX                     mtx;
 };
 
 static unsigned                        hcl_nhash = 16383;
@@ -79,7 +79,7 @@ hcl_start(void)
 
        for (u = 0; u < hcl_nhash; u++) {
                TAILQ_INIT(&hcl_head[u].head);
-               AZ(pthread_mutex_init(&hcl_head[u].mtx, NULL));
+               MTX_INIT(&hcl_head[u].mtx);
                hcl_head[u].magic = HCL_HEAD_MAGIC;
        }
 }
index 89eb89cac5d831375a0d4216a1e4f289b69de361..54a6c0f2e70b27fd53010df5de9a86b649dd648e 100644 (file)
@@ -22,7 +22,7 @@ struct hsl_entry {
 };
 
 static TAILQ_HEAD(, hsl_entry) hsl_head = TAILQ_HEAD_INITIALIZER(hsl_head);
-static pthread_mutex_t hsl_mutex;
+static MTX hsl_mutex;
 
 /*--------------------------------------------------------------------
  * The ->init method is called during process start and allows 
@@ -33,7 +33,7 @@ static void
 hsl_start(void)
 {
 
-       AZ(pthread_mutex_init(&hsl_mutex, NULL));
+       MTX_INIT(&hsl_mutex);
 }
 
 /*--------------------------------------------------------------------
index 4c988a59f59f0cb58143654531cde3be8a40106f..892a0ce1f87f9118e2a715dc7467b8036740812e 100644 (file)
@@ -27,7 +27,7 @@
 struct varnish_stats *VSL_stats;
 static struct shmloghead *loghead;
 static unsigned char *logstart;
-static pthread_mutex_t vsl_mtx;
+static MTX vsl_mtx;
 
 /*
  * This variant copies a byte-range directly to the log, without
@@ -135,7 +135,7 @@ VSL_Init(void)
        assert(loghead->hdrsize == sizeof *loghead);
        /* XXX more check sanity of loghead  ? */
        logstart = (unsigned char *)loghead + loghead->start;
-       AZ(pthread_mutex_init(&vsl_mtx, NULL));
+       MTX_INIT(&vsl_mtx);
        loghead->starttime = time(NULL);
        memset(VSL_stats, 0, sizeof *VSL_stats);
 }
index ac4a8465cc2994d3370ce6a6ff395dd124c03093..8a966fd960fcabd93e6671980b2a6d008e3a420d 100644 (file)
@@ -77,7 +77,7 @@ struct smf_sc {
        struct smfhead          order;
        struct smfhead          free[NBUCKET];
        struct smfhead          used;
-       pthread_mutex_t         mtx;
+       MTX                     mtx;
 };
 
 /*--------------------------------------------------------------------*/
@@ -492,6 +492,7 @@ new_smf(struct smf_sc *sc, unsigned char *ptr, off_t off, size_t len)
 {
        struct smf *sp, *sp2;
 
+       assert(!(len % sc->pagesize));
        sp = calloc(sizeof *sp, 1);
        XXXAN(sp);
        sp->magic = SMF_MAGIC;
@@ -534,6 +535,7 @@ smf_open_chunk(struct smf_sc *sc, off_t sz, off_t off, off_t *fail, off_t *sum)
        off_t h;
 
        assert(sz != 0);
+       assert(!(sz % sc->pagesize));
 
        if (*fail < (uintmax_t)sc->pagesize * MINPAGES)
                return;
@@ -576,7 +578,7 @@ smf_open(struct stevedore *st)
        /* XXX */
        if (sum < MINPAGES * (uintmax_t)getpagesize())
                exit (2);
-       AZ(pthread_mutex_init(&sc->mtx, NULL));
+       MTX_INIT(&sc->mtx);
 }
 
 /*--------------------------------------------------------------------*/