qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked co


From: Gabriel Kerneis
Subject: Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield
Date: Thu, 8 Aug 2013 07:16:19 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Aug 08, 2013 at 02:29:39AM +0100, Charlie Shepherd wrote:
> On 07/08/2013 23:13, Gabriel Kerneis wrote:
> >On Wed, Aug 07, 2013 at 09:18:05PM +0200, Stefan Hajnoczi wrote:
> >>I guess the practical problem is that CPC will get
> >>upset that it's being called by the coroutine implementation from
> >>non-coroutine contexts.
> >But is it really the case? If Charlie added an annotation, it probably means
> >that in practice it was only called from coroutine context anyway.
> 
> It was also called from coroutine implementation in functions that
> weren't annotated coroutine_fn (qemu_coroutine_switch() and
> friends).

In that case, the interface/implementation split suggested by Stefan makes
sense.

Note that qemu_coroutine_self() in principle really needs to be annotated
coroutine_fn since it accesses (and returns) its execution context. The fact
that it is implemented with thread-local variables in Qemu is an implementation
detail, almost a hack (however smart); the "natural" CPC way would be to just
return the coroutine associated with the current continuation. So keeping the
annotation definitely makes sense.

-- 
Gabriel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]