aboutsummaryrefslogtreecommitdiff
path: root/gold/readsyms.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-12-14 19:00:21 +0000
committerIan Lance Taylor <iant@google.com>2007-12-14 19:00:21 +0000
commit17a1d0a9b26ce8f4f71073c41483baa0c10ed83b (patch)
tree3cdd95751145e2cf1cbcaedee2df8790c86b935d /gold/readsyms.h
parent7004837e8d2e02ee35c50d236681e9c30a283619 (diff)
downloadfsf-binutils-gdb-17a1d0a9b26ce8f4f71073c41483baa0c10ed83b.zip
fsf-binutils-gdb-17a1d0a9b26ce8f4f71073c41483baa0c10ed83b.tar.gz
fsf-binutils-gdb-17a1d0a9b26ce8f4f71073c41483baa0c10ed83b.tar.bz2
Rewrite workqueue. This version eliminates the master thread, and
reduces the amount of locking required to find a new thread to run.
Diffstat (limited to 'gold/readsyms.h')
-rw-r--r--gold/readsyms.h30
1 files changed, 14 insertions, 16 deletions
diff --git a/gold/readsyms.h b/gold/readsyms.h
index c02a0ee4..7a4db41 100644
--- a/gold/readsyms.h
+++ b/gold/readsyms.h
@@ -55,7 +55,7 @@ class Read_symbols : public Task
// NEXT_BLOCKER is used to block the next input file from adding
// symbols.
Read_symbols(const General_options& options, Input_objects* input_objects,
- Symbol_table* symtab, Layout* layout, const Dirsearch& dirpath,
+ Symbol_table* symtab, Layout* layout, Dirsearch* dirpath,
const Input_argument* input_argument, Input_group* input_group,
Task_token* this_blocker, Task_token* next_blocker)
: options_(options), input_objects_(input_objects), symtab_(symtab),
@@ -68,11 +68,11 @@ class Read_symbols : public Task
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);
@@ -93,7 +93,7 @@ class Read_symbols : public Task
Input_objects* input_objects_;
Symbol_table* symtab_;
Layout* layout_;
- const Dirsearch& dirpath_;
+ Dirsearch* dirpath_;
const Input_argument* input_argument_;
Input_group* input_group_;
Task_token* this_blocker_;
@@ -123,11 +123,11 @@ class Add_symbols : public Task
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);
@@ -137,8 +137,6 @@ class Add_symbols : public Task
{ return "Add_symbols " + this->object_->name(); }
private:
- class Add_symbols_locker;
-
Input_objects* input_objects_;
Symbol_table* symtab_;
Layout* layout_;
@@ -199,11 +197,11 @@ class Finish_group : public Task
// The standard Task methods.
- Is_runnable_type
- is_runnable(Workqueue*);
+ Task_token*
+ is_runnable();
- Task_locker*
- locks(Workqueue*);
+ void
+ locks(Task_locker*);
void
run(Workqueue*);