public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Per-inferior thread list, multi-target prep
@ 2018-10-01 10:32 Pedro Alves
  2018-10-01 10:32 ` [PATCH 1/3] Avoid find_thread_ptid with null_ptid Pedro Alves
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Pedro Alves @ 2018-10-01 10:32 UTC (permalink / raw)
  To: gdb-patches

Here's another chunk split out from my multi-target branch (on
github).  (It's the chunk that I mentioned would be next at the
Cauldron's multi-core BoF.)

Patch #3 is the real deal.  See its commit log for the full
description, but the gist is that it makes each inferior have its own
thread list, and replaces the ALL_THREADS / ALL_NON_EXITED_THREADS /
ALL_INFERIORS macros with (C++20-like) ranges and iterators, such that
you can instead naturaly iterate over threads/inferiors using
range-for, like e.g,.:

   // all threads, including THREAD_EXITED threads.
   for (thread_info *tp : all_threads ())
     { .... }

   // all non-exited threads.
   for (thread_info *tp : all_non_exited_threads ())
     { .... }

   // all non-exited threads of INF inferior.
   for (thread_info *tp : inf->non_exited_threads ())
     { .... }

Patches #1 and #2 fix latent problems exposed by patch #3.

Pedro Alves (3):
  Avoid find_thread_ptid with null_ptid
  Fix follow_exec latent problem
  Per-inferior thread list, thread ranges/iterators, down with
    ALL_THREADS, etc.

 gdb/Makefile.in                |   1 +
 gdb/breakpoint.c               |   7 +-
 gdb/btrace.c                   |   4 +-
 gdb/cli/cli-interp.c           |   4 +-
 gdb/common/filtered-iterator.h |  87 +++++++++++
 gdb/common/safe-iterator.h     |  93 +++++++++++
 gdb/corelow.c                  |   6 -
 gdb/darwin-nat.c               |  10 +-
 gdb/fbsd-nat.c                 |  21 +--
 gdb/fbsd-tdep.c                |   6 +-
 gdb/fork-child.c               |   7 +-
 gdb/gdbarch-selftests.c        |   2 +-
 gdb/gdbthread.h                |  91 +++++++----
 gdb/infcmd.c                   |  69 +++-----
 gdb/inferior-iter.h            | 117 ++++++++++++++
 gdb/inferior.c                 | 136 ++++++----------
 gdb/inferior.h                 |  83 +++++++---
 gdb/inflow.c                   |   6 +-
 gdb/infrun.c                   | 187 +++++++++-------------
 gdb/linux-nat.c                |  43 +++--
 gdb/linux-tdep.c               |   6 +-
 gdb/linux-thread-db.c          |   8 +-
 gdb/mi/mi-interp.c             |  60 +++----
 gdb/mi/mi-main.c               |   5 +-
 gdb/nto-procfs.c               |   2 -
 gdb/python/py-inferior.c       |   4 +-
 gdb/record-btrace.c            |  72 +++------
 gdb/record-full.c              |   4 +-
 gdb/regcache.c                 |   3 -
 gdb/remote-sim.c               |   3 -
 gdb/remote.c                   |  75 +++------
 gdb/target.c                   |   8 +-
 gdb/thread-iter.c              | 101 ++++++++++++
 gdb/thread-iter.h              | 311 ++++++++++++++++++++++++++++++++++++
 gdb/thread.c                   | 346 ++++++++++++-----------------------------
 gdb/tid-parse.c                |  12 +-
 gdb/tui/tui-interp.c           |   4 +-
 gdb/x86-bsd-nat.c              |  14 +-
 38 files changed, 1211 insertions(+), 807 deletions(-)
 create mode 100644 gdb/common/filtered-iterator.h
 create mode 100644 gdb/common/safe-iterator.h
 create mode 100644 gdb/inferior-iter.h
 create mode 100644 gdb/thread-iter.c
 create mode 100644 gdb/thread-iter.h

-- 
2.14.4

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-11-22 16:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-01 10:32 [PATCH 0/3] Per-inferior thread list, multi-target prep Pedro Alves
2018-10-01 10:32 ` [PATCH 1/3] Avoid find_thread_ptid with null_ptid Pedro Alves
2018-10-01 15:54   ` Tom Tromey
2018-10-02 17:08     ` Pedro Alves
2018-10-02 21:14       ` Tom Tromey
2018-10-01 10:33 ` [PATCH 3/3] Per-inferior thread list, thread ranges/iterators, down with ALL_THREADS, etc Pedro Alves
2018-10-01 16:33   ` John Baldwin
2018-10-02 13:21     ` Pedro Alves
2018-10-03 17:34       ` John Baldwin
2018-10-04 19:16         ` Pedro Alves
2018-10-01 17:12   ` Tom Tromey
2018-10-03 12:12     ` Pedro Alves
2018-10-01 10:33 ` [PATCH 2/3] Fix follow_exec latent problem Pedro Alves
2018-11-22 16:28 ` [PATCH 0/3] Per-inferior thread list, multi-target prep Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).