OK, I'm refactoring the scheduler system a bit, mainly moving stuff into cleaner modules and renaming things with rubbish names like "doflx" to something more meaningful.
I think I've now isolated the central problem. When a pthread is created, a new async object is created too. This means a separate demux and a separate queue of fthreads waiting for rescheduling. We need a separate queue because fthreads have affinity to a particular pthread. But there's no reason for two demux pthreads. The queue is important, because it provides a way an embedded event loop can create new fthreads .. just whack them onto the queue. The queue is used because it is thread safe. So any thread can post an fthread onto the queue. However there is a reason to put jobs on a shared queue. That way, multiple felix pthreads can service jobs. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language