From 4b5766580559d101dd1c29cc575b3ffa9f51c2d7 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Mon, 23 Sep 2013 23:16:25 +0200 Subject: fossil: move from liboventi to libthread and libventi R=rsc https://codereview.appspot.com/13504049 --- src/cmd/fossil/bwatch.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/cmd/fossil/bwatch.c') diff --git a/src/cmd/fossil/bwatch.c b/src/cmd/fossil/bwatch.c index 51deb762..8cd0956e 100644 --- a/src/cmd/fossil/bwatch.c +++ b/src/cmd/fossil/bwatch.c @@ -44,7 +44,7 @@ struct WEntry struct WMap { - VtLock *lk; + QLock lk; WEntry *hchild[HashSize]; WEntry *hparent[HashSize]; @@ -84,7 +84,7 @@ allocWEntry(void) w = pool; if(w == nil){ - w = vtMemAllocZ(1024*sizeof(WEntry)); + w = vtmallocz(1024*sizeof(WEntry)); for(i=0; i<1024; i++) freeWEntry(&w[i]); w = pool; @@ -195,16 +195,15 @@ addChild(uchar p[VtEntrySize], uchar c[VtEntrySize], int off) void bwatchReset(uchar score[VtScoreSize]) { - vtLock(map.lk); + qlock(&map.lk); _bwatchResetParent(score); _bwatchResetChild(score); - vtUnlock(map.lk); + qunlock(&map.lk); } void bwatchInit(void) { - map.lk = vtLockAlloc(); wp = privalloc(); *wp = nil; } @@ -222,7 +221,7 @@ getWThread(void) w = *wp; if(w == nil || w->pid != getpid()){ - w = vtMemAllocZ(sizeof(WThread)); + w = vtmallocz(sizeof(WThread)); *wp = w; w->pid = getpid(); } @@ -241,7 +240,7 @@ bwatchDependency(Block *b) if(bwatchDisabled) return; - vtLock(map.lk); + qlock(&map.lk); _bwatchResetParent(b->score); switch(b->l.type){ @@ -264,7 +263,7 @@ bwatchDependency(Block *b) addChild(b->score, b->data+i*VtScoreSize, i); break; } - vtUnlock(map.lk); + qunlock(&map.lk); } static int @@ -376,7 +375,7 @@ bwatchLock(Block *b) if(b->part != PartData) return; - vtLock(map.lk); + qlock(&map.lk); w = getWThread(); for(i=0; inb; i++){ if(lockConflicts(w->b[i]->score, b->score)){ @@ -385,7 +384,7 @@ bwatchLock(Block *b) stop(); } } - vtUnlock(map.lk); + qunlock(&map.lk); if(w->nb >= MaxLock){ fprint(2, "%d: too many blocks held\n", w->pid); stop(); -- cgit v1.2.3