aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/bloom.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2008-07-03 22:44:24 -0400
committerRuss Cox <rsc@swtch.com>2008-07-03 22:44:24 -0400
commitac5a97e6b3b136c1ab669ae19a813a81cce673eb (patch)
tree52f1196123644c409b85368eb300b020c0d7e16a /src/cmd/venti/srv/bloom.c
parentcd87898f5db211b3485d8cad2c00ea356ca96361 (diff)
downloadplan9port-ac5a97e6b3b136c1ab669ae19a813a81cce673eb.tar.gz
plan9port-ac5a97e6b3b136c1ab669ae19a813a81cce673eb.tar.bz2
plan9port-ac5a97e6b3b136c1ab669ae19a813a81cce673eb.zip
venti: reduce locking contention in buildindex
Diffstat (limited to 'src/cmd/venti/srv/bloom.c')
-rw-r--r--src/cmd/venti/srv/bloom.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/cmd/venti/srv/bloom.c b/src/cmd/venti/srv/bloom.c
index 1db36bd9..ce146f6d 100644
--- a/src/cmd/venti/srv/bloom.c
+++ b/src/cmd/venti/srv/bloom.c
@@ -229,6 +229,22 @@ markbloomfilter(Bloom *b, u8int *score)
runlock(&b->lk);
}
+void
+markbloomfiltern(Bloom *b, u8int score[][20], int n)
+{
+ int i;
+
+ if(b == nil || b->data == nil)
+ return;
+
+ rlock(&b->lk);
+ qlock(&b->mod);
+ for(i=0; i<n; i++)
+ _markbloomfilter(b, score[i]);
+ qunlock(&b->mod);
+ runlock(&b->lk);
+}
+
static void
bloomwriteproc(void *v)
{