[coyotos-dev] Thoughts on FCRBs and asynchrony

Christopher Nelson paradox at BBHC.ORG
Wed Feb 8 15:03:56 EST 2006


> Christopher Nelson wrote:
> 
> >> If your activation handler accesses application state, then yes.
> >>
> >>Generally, I think activation handlers will be provided by 
> libraries 
> >>(such as user-level threads, event loops, etc.), in which case they 
> >>can be somewhat isolated from your data.
> >>    
> >>
> >
> >I don't think this makes sense at all.  Unless, for example, 
> libraries 
> >all have their own allocator.  There is certain global state 
> that must 
> >change atomically and not be cached (i.e. in stored 
> registers), so any 
> >sort of concurrency still has to be managed.
> >  
> >
> 
> As Shap mentioned, a light "activation thread" to push events 
> onto a synchronized queue, and the main application thread to 
> pull events from the queue and process them. The only 
> synchronization point is in the queue itself. This is what I 
> meant by your data being isolated. The library may or may not 
> require an allocator (a fixed length event queue provided by 
> a client at initialization is certainly possible for instance).

 I see what you're saying.  Essentially it would be a simple thread
like:

Queue* top;
Queue* empty_items;

void post_event(event)
{
	Queue *qi = atomic_list_pop(empty_items);
      make_queue_item(event);
	atomic_list_push(top);
}

-={C}=-



More information about the coyotos-dev mailing list