Hello folks,
I am quite new to Ryu (but not to Python nor threading), so forgive me in
advance if I'm mistaken with something.
My Ryu application subscribes to Ryu's events using :
@set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
def event_catcher(self, ev):
self.WorkOn(ev.msg)
What I want to achieve is getting this last function call (self.WorkOn(ev.msg))
running asynchronously, and concurrently(1)(2), so that other events that could
be raised and handled while the first one is processing. My first try would be
to use green-threads to handle such events.
First question: "is Ryu's call to event_catcher(ev) itself already
asynchronous?"
è Case 1: If yes, I guess that asynchronism is obtained with a green-thread.
Does it make creating a new green-thread dedicated to its body redundant?
è Case 2: If no, I guess that events are blocking, so the Ryu Application is
not able to receive simultaneous events, so it would be interesting to make the
body's function asynchronous. Am I right?
(I know that there's a dedicated thread in Ryu Applications working as an
event-loop listener - see
https://osrg.github.io/ryu-book/en/html/arch.html#application-programming-model,
but what I can't figure out is if the events are raised asynchronously or not)
If no (Case 2): "Am I able to use green-threads to implement asynchronism in
the events handling?"
I am asking because I've read that "While threads and queues is currently
implemented with eventlet/greenlet, a direct use of them in a Ryu application
is strongly discouraged."
Why is that? In what manner my greenlet coroutines would affect Ryu's ones?
Thanks for your time!
Tim
(1) and ideally in parallel but Python has its own drawbacks about parallelism
depending on the Python implementation used (GIL or not), and it is not the
purpose of my question here
(2) be sure not to confuse between concurrency and parallelism: concurrency is
the ability to run in parallel, parallelism is about to use several CPU cores
at the same time.
------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel