Only in so far as they provide a data transport. With pipes/socketpairs
you have to have a destination to connect to. Not so for Message Queues.
It provides a means of sending anonymous data out to a spool where anyone
may pull it at their convenience (ie: the received doesn't have to be
active when the sender is). The typing attribute gives the programmer a
way of discrete message designation. There are many uses for this.
> functionality, with the disadvantage that sending a message via a
> message queue is limited to the same machine (yes, I'm ignoring DIPC
> and such: they open up another can of worms). Sending a message via a
> pipe (i.e. write()ing to a FD) is not limited to the same machine
> (just call connect() instead of socketpair()).
Oh, please. Not more of "It's the 'Net, Stupid". That rates right up
there with people thinking the Web *is* the 'Net (which is balogne). If
the facility had been intended to be distributed, it would have been
designed as such.
> Anyway, I don't have a problem with message queues in the sense that I
> think they should be removed or anything like that. I just think that
> supporting them via select()/poll() is pointless. If you want
> multiplexing of message queues, use pipes instead.
Now, here I happen to agree. AIX implemented them as a convenient way of
waiting on FDs and msgqueues (which in AIX were distributed). That being
said, I only recall one program actually using that feature (one I wrote).
> Frankly, I'd like to see SysV message queues implemented in libc on
> top of pipes. Once shmfs is in the kernel, I'd like to see the SysV
> shared memory support ripped out of the kernel and put into user space
> too. It's good enough for POSIX SHM.
As long as the interface doesn't change and it's at least as fast and
stable as the kernel version, it'd be OK with me. But, that's shared
memory, not message queues ;-)
-- Peter A. Castro (doctor@fruitbat.org) or (pcastro@us.oracle.com)- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/