Re: [PATCH v4 2/9] add "this" pointers to more target APIs

Pedro Alves
2013-11-08T17:57:12Z

On 10/28/2013 04:52 PM, Tom Tromey wrote:
>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
>
> Pedro> On 10/28/2013 04:37 PM, Tom Tromey wrote:
>>>
>>> It is all moot, I think. There is no reason for linux-nat to ever call
>>> linux_nat_is_async_p any more. I think we can drop all the dead code
>>> instead. I noted this in the first submission and said I will do it in
>>> a followup; but I think I'll just tack it on to this series instead.
>
> Pedro> I'd rather keep the code to allow forcing sync mode for a while,
> Pedro> to make it easier to debug problems and compare modes.
>
> With this series, there's no way to force sync mode.

That'll really make our lives complicated. We'll definitely
hit async specific problems, and not being able to easily
compare how sync behaves will be a nuisance. Also, given most
targets don't support async, I think it'll be very valuable
to easily check how sync mode works on native GNU/Linux as proxy
for those targets -- consider patches changing run control and
execution commands code. Heck, I've gone through the trouble
of implementing software single-step on x86 just to be able
to use that as proxy for sss targets. :-)

> I think maybe it could be done by adding a new "maint" setting.

Yeah, "set target-async" used to be a set of maint commands.

https://sourceware.org/ml/gdb-patches/2008-08/msg00423.html

We've come full circle. :-)

>
> We can't reuse "set target-async" due to the MI misuse, unless we're
> willing to change the default setting of this parameter based on the
> current interpreter. In fact an earlier version of my patch series did
> just this, but IIRC I thought it was too hackish.

Yeah, making the setting be MI specific is better.

> While we're here, I wonder now whether the distinction between "can
> async" and "is async" makes sense any more. I'm inclined to remove one
> of them.

Yeah, probably doesn't. We used to have this target_async_mask
mechanism, that got replaced by TARGET_WNOHANG:

https://sourceware.org/ml/gdb-patches/2009-05/msg00459.html

and forced waits:

https://sourceware.org/ml/gdb-patches/2011-06/msg00086.html

Before that, the target could support async, but have it
masked (so "can" would be true, "is" would be "false").

--
Pedro Alves