mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
gdb: fix build errors in gdbsupport/thread-pool.h used with old gcc
When I build gdb with gcc 8.3, there exist the following build errors, rename the typedef to task_t to fix them. CXX thread-pool.o In file included from /home/loongson/gdb.git/gdbsupport/thread-pool.cc:21: /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h: In member function ‘std::future<void> gdb::thread_pool::post_task(std::function<void()>&&)’: /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:69:44: error: declaration of ‘task’ shadows a previous local [-Werror=shadow=local] std::packaged_task<void ()> task (std::move (func)); ^~~~ /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:102:39: note: shadowed declaration is here typedef std::packaged_task<void ()> task; ^~~~ /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h: In member function ‘std::future<_Res> gdb::thread_pool::post_task(std::function<T()>&&)’: /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:80:41: error: declaration of ‘task’ shadows a previous local [-Werror=shadow=local] std::packaged_task<T ()> task (std::move (func)); ^~~~ /home/loongson/gdb.git/gdbsupport/../gdbsupport/thread-pool.h:102:39: note: shadowed declaration is here typedef std::packaged_task<void ()> task; ^~~~ Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
This commit is contained in:
@ -171,7 +171,7 @@ thread_pool::thread_function ()
|
|||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
optional<task> t;
|
optional<task_t> t;
|
||||||
|
|
||||||
{
|
{
|
||||||
/* We want to hold the lock while examining the task list, but
|
/* We want to hold the lock while examining the task list, but
|
||||||
|
@ -99,13 +99,13 @@ private:
|
|||||||
size_t m_thread_count = 0;
|
size_t m_thread_count = 0;
|
||||||
|
|
||||||
/* A convenience typedef for the type of a task. */
|
/* A convenience typedef for the type of a task. */
|
||||||
typedef std::packaged_task<void ()> task;
|
typedef std::packaged_task<void ()> task_t;
|
||||||
|
|
||||||
/* The tasks that have not been processed yet. An optional is used
|
/* The tasks that have not been processed yet. An optional is used
|
||||||
to represent a task. If the optional is empty, then this means
|
to represent a task. If the optional is empty, then this means
|
||||||
that the receiving thread should terminate. If the optional is
|
that the receiving thread should terminate. If the optional is
|
||||||
non-empty, then it is an actual task to evaluate. */
|
non-empty, then it is an actual task to evaluate. */
|
||||||
std::queue<optional<task>> m_tasks;
|
std::queue<optional<task_t>> m_tasks;
|
||||||
|
|
||||||
/* A condition variable and mutex that are used for communication
|
/* A condition variable and mutex that are used for communication
|
||||||
between the main thread and the worker threads. */
|
between the main thread and the worker threads. */
|
||||||
|
Reference in New Issue
Block a user