From f5a8ea6fd8908c6f42670b8546239fdbc7fdbf03 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 2 Jun 2011 09:33:56 -0400 Subject: venti: import changes from plan 9 R=rsc CC=plan9port.codebot http://codereview.appspot.com/4523057 --- src/cmd/venti/srv/buildindex.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'src/cmd/venti/srv/buildindex.c') diff --git a/src/cmd/venti/srv/buildindex.c b/src/cmd/venti/srv/buildindex.c index ce5103a7..08f0901a 100644 --- a/src/cmd/venti/srv/buildindex.c +++ b/src/cmd/venti/srv/buildindex.c @@ -50,18 +50,19 @@ static void arenapartproc(void*); void usage(void) { - fprint(2, "usage: buildindex [-bd] [-i isect]... [-M imem] venti.conf\n"); + fprint(2, "usage: buildindex [-b] [-i isect]... [-M imem] venti.conf\n"); threadexitsall("usage"); } void threadmain(int argc, char *argv[]) { - int fd, i, napart; + int fd, i, napart, nfinish, maxdisks; u32int bcmem, imem; Config conf; Part *p; + maxdisks = 100000; ventifmtinstall(); imem = 256*1024*1024; ARGBEGIN{ @@ -78,6 +79,9 @@ threadmain(int argc, char *argv[]) case 'M': imem = unittoull(EARGF(usage())); break; + case 'm': /* temporary - might go away */ + maxdisks = atoi(EARGF(usage())); + break; default: usage(); break; @@ -146,17 +150,21 @@ threadmain(int argc, char *argv[]) /* start arena procs */ p = nil; napart = 0; + nfinish = 0; arenadonechan = chancreate(sizeof(void*), 0); for(i=0; inarenas; i++){ if(ix->arenas[i]->part != p){ p = ix->arenas[i]->part; vtproc(arenapartproc, p); - napart++; + if(++napart >= maxdisks){ + recvp(arenadonechan); + nfinish++; + } } } /* wait for arena procs to finish */ - for(i=0; i