diff options
author | Cary Coutant <ccoutant@google.com> | 2011-10-17 23:43:18 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2011-10-17 23:43:18 +0000 |
commit | f475cf7b6c7de8970196755517e95831eb8e6b4b (patch) | |
tree | f4a02128b952d18773a894486808e4c031327a5b | |
parent | 4f95c8b4f140520839d5b7008dbfee9ffeb62027 (diff) | |
download | gdb-f475cf7b6c7de8970196755517e95831eb8e6b4b.zip gdb-f475cf7b6c7de8970196755517e95831eb8e6b4b.tar.gz gdb-f475cf7b6c7de8970196755517e95831eb8e6b4b.tar.bz2 |
* readsyms.cc (Read_symbols::run): Don't queue an unblocker
task for members of lib groups.
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/readsyms.cc | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index c930618..391f015 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,10 @@ 2011-10-17 Cary Coutant <ccoutant@google.com> + * readsyms.cc (Read_symbols::run): Don't queue an unblocker + task for members of lib groups. + +2011-10-17 Cary Coutant <ccoutant@google.com> + PR gold/13288 * fileread.cc (File_read::find_view): Add assert. (File_read::make_view): Move bounds check (replace with assert)... diff --git a/gold/readsyms.cc b/gold/readsyms.cc index 1e50942..9974722 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_)); } |