So, this started out as a practical problem, but now it's more curiosity. Cap'n Proto uses an event loop for concurrency. I'm using another library that has its *own* event loop for concurrency. They refuse to use each other's event loops. Although the basic logic is the same between the two, the APIs are incompatible.
So, how do I mix two event loops? My thought was, that if one of the event loops supports a callback when an event is queued I can essentially use one event loop to drive the other. The basic logic would be something like the following (Python syntax, but you get the idea): loop1 = cnp_event_loop() loop2 = some_other_lib_event_loop() @loop1.on_event_added def _(): @loop2.call_soon def _(): loop1.poll() def adapt_future(f): f2 = loop2.create_future() if f.done(): f2.set_result(f.result()) else: @f.add_done_callback def _(): f2.set_result(f.result()) return f2 async def main(): res = await adapt_future(func_that_returns_a_cnp_promise()) print(res) loop2.run_until_complete(main2()) (The function Cap'n Proto doesn't support is on_event_added() on an EventLoop.) Just curious if anyone has any thoughts on this. -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/7b46e93a-a42e-4f69-b5f5-f924a3b81550n%40googlegroups.com.