Skip to content
  • Derek Parker's avatar
    command (next): Improvements for parallel programs · b9846c76
    Derek Parker authored
    This patch aims to improve how Delve tracks the current goroutine,
    especially in very highly parallel programs. The main spirit of this
    patch is to ensure that even in situations where the goroutine we care
    about is not executing (common for len(g) > len(m)) we still end up back
    on that goroutine as a result of executing the 'next' command.
    
    We accomplish this by tracking our original goroutine id, and any time a
    breakpoint is hit or a threads stops, we examine the stopped threads and
    see if any are executing the goroutine we care about. If not, we set
    'next' breakpoint for them again and continue them. This is done so that
    one of those threads can eventually pick up the goroutine we care about
    and begin executing it again.
    b9846c76