This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [non-stop] 07/10 non-stop inferior control


On Sun, Jun 15, 2008 at 10:05:16PM +0100, Pedro Alves wrote:
> It is also needed to have support to interrupt/suspend a simple
> thread so a new target_stop_ptid method was added to request
> the target to interrupt a single thread.

How about adding a ptid argument to to_stop instead?  I think the code
will be shared in most cases.

> @@ -1810,11 +1847,16 @@ handle_inferior_event (struct execution_
>        && ecs->ws.kind != TARGET_WAITKIND_SIGNALLED && ecs->new_thread_event)
>      add_thread (ecs->ptid);
>  
> -  /* Mark all threads as not-executing.  In non-stop, this should be
> -     adjusted to only mark ecs->ptid.  */
> -  if (ecs->ws.kind != TARGET_WAITKIND_IGNORE
> -      && stop_soon != STOP_QUIETLY)
> -    set_executing (pid_to_ptid (-1), 0);
> +  if (ecs->ws.kind != TARGET_WAITKIND_IGNORE)
> +    {
> +      /* Mark the stopped threads accordingly.  */
> +      if (!non_stop
> +	  || ecs->ws.kind == TARGET_WAITKIND_EXITED
> +	  || ecs->ws.kind == TARGET_WAITKIND_SIGNALLED)
> +	set_executing (pid_to_ptid (-1), 0);
> +      else
> +	set_executing (ecs->ptid, 0);
> +    }
>  
>    switch (ecs->ws.kind)
>      {

Are we going to miss the stop_soon check here?

> -	switch_to_thread (tp->ptid);
> +	if (non_stop)
> +	  context_switch_to (tp->ptid);
> +	else
> +	  switch_to_thread (tp->ptid);
> +

Ow ow my head, I really wish we didn't need both of these.  We'll
never keep track of which is which.  Will we eventually be able to
merge them?

> -  add_prefix_cmd ("thread", class_run, thread_command, _("\
> +  c = add_prefix_cmd ("thread", class_run, thread_command, _("\
>  Use this command to switch between threads.\n\
>  The new thread ID must be currently known."),
>  		  &thread_cmd_list, "thread ", 1, &cmdlist);

Indentation on that last line.

Otherwise OK.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]