The IO split draft currently at jacksonh/manos@791a0e6d88dd51689a4f should be reviewed before we merge it into master. All major issues i encountered during my tests are fixed, and benchmarks show little to no performance degradation. Explanation for "little": the managed IO code didn't guarantee some things the libev IO code did guarantee, and as a consequence, http transaction and managed IO did not get along too well. That is fixed with a rather nasty workaround for time being.
Major points of the changeset:
it is now possible to use the IO core of manos without having to link the http part
we now have a compile-time flag that forces Manos.IO to the managed implementation, so the IO core is also embeddable into pretty much everything CLR
multiple event loops, now named contexts, are possible without any imposed binding to threads
factories for file streams and sockets per context, the resulting objects are then bound to that context and process events through it's event loop
prepare, check, idle and async watchers per context for whatever you might want to do with them
The IO split draft currently at jacksonh/manos@791a0e6d88dd51689a4f should be reviewed before we merge it into master. All major issues i encountered during my tests are fixed, and benchmarks show little to no performance degradation. Explanation for "little": the managed IO code didn't guarantee some things the libev IO code did guarantee, and as a consequence, http transaction and managed IO did not get along too well. That is fixed with a rather nasty workaround for time being.
Major points of the changeset:
any feedback is welcome.