Fix some bugs in llgs thread state handling.

Description

Fix some bugs in llgs thread state handling.

  • When the thread state coordinator is told to skip sending a stop request for a running thread that is ignored (e.g. the thread that steps in a step operation is technically running and should not have a stop sent to it, since it will stop of its own accord per the kernel step operation), ensure the deferred signal notification logic still waits for the skipped thread. (i.e. we want to defer the notification until the stepping thread is indeed stopped, we just don't want to send it a tgkill).
  • Add ThreadStateCoordinator::RequestResumeAsNeeded(). This variant of the RequestResume() method does not call the error function when the thread is already running. Instead, it just logs that the thread is already running and skips the resume operation. This is useful for the case of vCont;c handling, where we tell all threads that they should be running. At the place we're calling, all we know is "we want this thread running if it isn't already," and that's exactly what this command does.
  • Formatting change (minor) in NativeThreadLinux logging.

Details

Committed
chaorenFeb 2 2015, 5:50 PM
Parents
rL227912: llgs: more work on thread stepping.
Branches
Unknown
Tags
Unknown