diff options
author | Ian Lance Taylor <iant@google.com> | 2007-12-14 19:00:21 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2007-12-14 19:00:21 +0000 |
commit | 17a1d0a9b26ce8f4f71073c41483baa0c10ed83b (patch) | |
tree | 3cdd95751145e2cf1cbcaedee2df8790c86b935d /gold/readsyms.h | |
parent | 7004837e8d2e02ee35c50d236681e9c30a283619 (diff) | |
download | gdb-17a1d0a9b26ce8f4f71073c41483baa0c10ed83b.zip gdb-17a1d0a9b26ce8f4f71073c41483baa0c10ed83b.tar.gz 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.h | 30 |
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*); |