projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
opcodes/
[deliverable/binutils-gdb.git]
/
gold
/
workqueue-threads.cc
diff --git
a/gold/workqueue-threads.cc
b/gold/workqueue-threads.cc
index 60d4adcbb3a579b4d74628686d6b63cd42c7b5d1..de2ce5bef5022136328a5320ba3238f42a656f8d 100644
(file)
--- a/
gold/workqueue-threads.cc
+++ b/
gold/workqueue-threads.cc
@@
-174,7
+174,7
@@
Workqueue_threader_threadpool::set_thread_count(int thread_count)
// Return whether the current thread should be cancelled.
bool
// Return whether the current thread should be cancelled.
bool
-Workqueue_threader_threadpool::should_cancel_thread()
+Workqueue_threader_threadpool::should_cancel_thread(
int thread_number
)
{
// Fast exit without taking a lock.
if (!this->check_thread_count_)
{
// Fast exit without taking a lock.
if (!this->check_thread_count_)
@@
-182,12
+182,13
@@
Workqueue_threader_threadpool::should_cancel_thread()
{
Hold_lock hl(this->lock_);
{
Hold_lock hl(this->lock_);
- if (th
is->threads_
> this->desired_thread_count_)
+ if (th
read_number
> this->desired_thread_count_)
{
--this->threads_;
{
--this->threads_;
+ if (this->threads_ <= this->desired_thread_count_)
+ this->check_thread_count_ = 0;
return true;
}
return true;
}
- this->check_thread_count_ = 0;
}
return false;
}
return false;
This page took
0.024553 seconds
and
4
git commands to generate.