> On Jan. 25, 2016, 2:42 p.m., Gordon Sim wrote: > > proton-c/bindings/python/cproton.i, line 447 > > <https://reviews.apache.org/r/42647/diff/1/?file=1205459#file1205459line447> > > > > 'async_notify' is a horrible name... is this in addition to or instead > > of on_interrupt?
I'm ok with this as a reactor hack provided we are not going to add any events to the messaging handler. If we have to add an event to the low-level proton handler it should be `on_reactor_foo` so its clear this is reactor-only. IMO this is a perfect example of the problem with the reactor design. The right way to do interrupts and injection across threads is very platform specific. The pipe trick is great on posix, but you could handle this much more easily on Windows if you weren't stuck with the posix-inpired design. In Go this is all nonsense, you pass functions on a channel. In python and ruby I'd expect to pass callable objects not just dead "events", but in both cases using C to intermediate will cause problems with the GIL/GVL locks. This stuff is just much easier if you use the tools in the language at hand. I will have ruby and C++ injection going shortly around the connection_engine, it already is working in Go if you want to check it out. - Alan ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/42647/#review116070 ----------------------------------------------------------- On Jan. 22, 2016, 8:11 a.m., Cliff Jansen wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/42647/ > ----------------------------------------------------------- > > (Updated Jan. 22, 2016, 8:11 a.m.) > > > Review request for qpid, Alan Conway, Andrew Stitcher, Gordon Sim, and Justin > Ross. > > > Bugs: PROTON-1071 > https://issues.apache.org/jira/browse/PROTON-1071 > > > Repository: qpid-proton-git > > > Description > ------- > > Wrote new thread safe primitives for reactor and selector for Windows and > adapted the existing posix self-pipe mechanism to the changed API. > > Reworked the Python EventInjector to use these primitives via special swig > functions. > > Updated the io.h documentation to reflect the more conservative thread > guarantee. > > > Diffs > ----- > > examples/python/db_recv.py 8c79049 > examples/python/db_send.py c07dcc0 > proton-c/bindings/python/cproton.i 734069f > proton-c/bindings/python/proton/reactor.py 195ff28 > proton-c/include/proton/event.h 16d2bda > proton-c/include/proton/io.h 19dfe53 > proton-c/include/proton/reactor.h e91b169 > proton-c/include/proton/selector.h c942393 > proton-c/src/events/event.c 5ad718e > proton-c/src/posix/selector.c 7f72c84 > proton-c/src/reactor/reactor.c 7ea279b > proton-c/src/windows/iocp.h 0e052e5 > proton-c/src/windows/iocp.c 404dd36 > proton-c/src/windows/selector.c f139aec > tests/python/proton_tests/reactor.py 6ee107d > > Diff: https://reviews.apache.org/r/42647/diff/ > > > Testing > ------- > > rhel7, windows8 > > > Thanks, > > Cliff Jansen > >
