[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
- [Qemu-devel] RFC: [PATCH 0/5] Explicitly annotating coroutine_fn functions, Charlie Shepherd, 2013/08/05
- [Qemu-devel] [PATCH 1/5] Add an explanation of when a function should be marked coroutine_fn, Charlie Shepherd, 2013/08/05
- Re: [Qemu-devel] [PATCH 1/5] Add an explanation of when a function should be marked coroutine_fn,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Charlie Shepherd, 2013/08/05
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Stefan Hajnoczi, 2013/08/07
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Gabriel Kerneis, 2013/08/07
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Charlie Shepherd, 2013/08/07
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Gabriel Kerneis, 2013/08/08
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Charlie Shepherd, 2013/08/08
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Gabriel Kerneis, 2013/08/08
- Re: [Qemu-devel] [PATCH 2/5] qemu_coroutine_self should not be marked coroutine_fn as it cannot yield, Charlie Shepherd, 2013/08/07
[Qemu-devel] [PATCH 3/5] Convert BlockDriver to explicit coroutine annotations, Charlie Shepherd, 2013/08/05