On 01/30/2013 09:36 AM, Martin Sustrik wrote:
On 30/01/13 09:11, David Nyström wrote:Have you considered supporting a lockless implementation of message queues for inproc/ipc ? (libatomic_ops).Yes. I've implemented that for ZeroMQ, but it's not yet implemented in nanomsg. Getting portable MIT-licensed code for atomic CAS would be the first thing to do, I guess.
I thought libatomic-ops was MIT-style, only the example heap+queue implementations are GPL afaik.
Sorry for jumping in into the thread half-way, but what is the end goal of the scalability protocol called nanomsg ? To be a scalability protocol in userspace for SMP OS:es, or be a scalability protocol for inter-chip communication ?Inter-process and in-process are just degenerate cases. The main goal is ranging from inside-datacenter upwards to global.
I'm sad to hear that this is you stance on inproc/intraproc, our use cases much rely on scalability protocols within an SMP domain, even between HW peripherals, see TI keystone, NetLogic FMN, Freescale USDPAA Intel DPDK, et.c.
Have a look at OpenEventMachine[1] for 'one' possible implementation of the intended use-case, and see if it matches where you are heading with nanomsg, personally, I don't see a fundamental conflict of interests, depending on how flexible the APIs still are.
[1] http://sourceforge.net/projects/eventmachine/ Best Regards, David
Martin