qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/5] Add an explanation of when a function shoul


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 1/5] Add an explanation of when a function should be marked coroutine_fn
Date: Tue, 6 Aug 2013 10:39:12 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Aug 05, 2013 at 08:44:03PM +0200, Charlie Shepherd wrote:
> From: Charlie Shepherd <address@hidden>
> 
> Coroutine functions that can yield directly or indirectly should be annotated
> with a coroutine_fn annotation. Add an explanation to that effect in
> include/block/coroutine.h.
> ---
>  include/block/coroutine.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/include/block/coroutine.h b/include/block/coroutine.h
> index 377805a..3b94b6d 100644
> --- a/include/block/coroutine.h
> +++ b/include/block/coroutine.h
> @@ -37,6 +37,9 @@
>   * static checker support for catching such errors.  This annotation might 
> make
>   * it possible and in the meantime it serves as documentation.
>   *
> + * A function must be marked with coroutine_fn if it can yield execution, 
> either
> + * directly or indirectly.
> + *

This is correct except for the case of dynamic functions that do:

  if (qemu_in_coroutine()) {
  } else {
      Coroutine *co = qemu_coroutine_new(...);
      ...
  }

Here the function is coroutine_fn only if the caller is in coroutine
context.

I think your comment update should include a note about this.  When
you've split all dynamic functions into coroutine/non-coroutine versions
then the note can be removed.

Stefan



reply via email to

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