summaryrefslogtreecommitdiff
path: root/gold/dirsearch.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2010-02-11 07:42:17 +0000
committerIan Lance Taylor <ian@airs.com>2010-02-11 07:42:17 +0000
commitfa17a3f4328a7f3bbf5491159c422edb0b2da7ba (patch)
treea31fafb5f6b738627a05ad5a22f9a04dfdc04d84 /gold/dirsearch.cc
parent612bdda1388367fe02d0c4096e87ce7668d4b3ee (diff)
* dirsearch.cc (Dirsearch::initialize): Add all blockers before
queueing any tasks. * gold.cc (queue_middle_gc_tasks): Likewise. Fix final blocker. (queue_middle_tasks): Add all blockers before queueing any tasks. (queue_final_tasks): Likewise. * token.h (Task_token::add_blockers): New function. * object.h (Input_objects::number_of_relobjs): New function.
Diffstat (limited to 'gold/dirsearch.cc')
-rw-r--r--gold/dirsearch.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/gold/dirsearch.cc b/gold/dirsearch.cc
index 84e1b32c00..fac3b2c857 100644
--- a/gold/dirsearch.cc
+++ b/gold/dirsearch.cc
@@ -1,6 +1,6 @@
// dirsearch.cc -- directory searching for gold
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold.
@@ -229,13 +229,11 @@ Dirsearch::initialize(Workqueue* workqueue,
gold_assert(caches == NULL);
caches = new Dir_caches;
this->directories_ = directories;
+ this->token_.add_blockers(directories->size());
for (General_options::Dir_list::const_iterator p = directories->begin();
p != directories->end();
++p)
- {
- this->token_.add_blocker();
- workqueue->queue(new Dir_cache_task(p->name().c_str(), this->token_));
- }
+ workqueue->queue(new Dir_cache_task(p->name().c_str(), this->token_));
}
// Search for a file. NOTE: we only log failed file-lookup attempts