[Spice-devel] [PATCH spice-server 2/2] docs: Add some notes on event scheduling and threading

Frediano Ziglio fziglio at redhat.com
Thu Mar 28 08:25:31 UTC 2019


> 
> On Mon, Mar 11, 2019 at 02:03:33PM +0000, Frediano Ziglio wrote:
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  docs/spice_threading_model.txt | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/docs/spice_threading_model.txt
> > b/docs/spice_threading_model.txt
> > index 9351141c8..25a3a030c 100644
> > --- a/docs/spice_threading_model.txt
> > +++ b/docs/spice_threading_model.txt
> > @@ -39,6 +39,14 @@ connect, disconnect and migrate. Connect and migrate are
> > asynchronous (the job
> >  is done while the current thread is doing something else) while disconnect
> >  is
> >  synchronous (the main thread will wait for termination).
> >  
> > +One aspect to take into consideration is the event scheduling. SPICE uses
> > some
> > +`SpiceCoreInterface` to handle events. As the events will be handled from
> > a
> > +thread based on the core interface you have to use the correct core. Each
> > +channel has an associated core interface which can be retrieved using
> > +`red_channel_get_core_interface`. There's also a main core interface you
> > can get
> > +using `reds_get_core_interface`. `reds_core_timer_*` and
> > `reds_core_watch_*`
> > +functions use the main core interface.
> 
> Do we need a few words as to when to use the main core interface?
> Apart from this, looks good to me.
> 
> Christophe
> 

It sounds a nice idea.

But honestly I cannot came with an easy rule beside "If code runs on
main thread like Qemu character devices or everything not running in
a channel you can use the main core interface."

Does it help?

Frediano


More information about the Spice-devel mailing list