From f475cf7b6c7de8970196755517e95831eb8e6b4b Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 17 Oct 2011 23:43:18 +0000 Subject: [PATCH] * readsyms.cc (Read_symbols::run): Don't queue an unblocker task for members of lib groups. --- gold/ChangeLog | 5 +++++ gold/readsyms.cc | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index c9306187ddb..391f015d4f7 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2011-10-17 Cary Coutant + + * readsyms.cc (Read_symbols::run): Don't queue an unblocker + task for members of lib groups. + 2011-10-17 Cary Coutant PR gold/13288 diff --git a/gold/readsyms.cc b/gold/readsyms.cc index 1e50942a281..997472284ae 100644 --- a/gold/readsyms.cc +++ b/gold/readsyms.cc @@ -161,8 +161,10 @@ void Read_symbols::run(Workqueue* workqueue) { // If we didn't queue a new task, then we need to explicitly unblock - // the token. - if (!this->do_read_symbols(workqueue)) + // the token. If the object is a member of a lib group, however, + // the token was already added to the list of locks for the task, + // and it will be unblocked automatically at the end of the task. + if (!this->do_read_symbols(workqueue) && this->member_ == NULL) workqueue->queue_soon(new Unblock_token(this->this_blocker_, this->next_blocker_)); } -- 2.30.2