Re: "System V IPC is a botch?"

From: Bryan Castillo (rook_5150_at_yahoo.com)
Date: 05/26/03


Date: 26 May 2003 14:00:54 -0700


>
> >
> > System V message queues suffer from all of these shortcomings
> > with the additional fault that they are not integrated with the
> > poll() system call, so there is no convenient way for a single-
> > threaded process to block on multiple message queues. (This last
> > is also true of POSIX message queues.) Named pipes (FIFOs) don't
> > suffer these drawbacks.
>
> Agree. It would be nice if both IPCs allowed you to associate an FD with the
> object, for no other reason than to use select or poll.
>
> Ditto for other things you wait on: processes to terminate, signals.
>

Posix message queues do allow asynchronous notification via mq_notify though.
One of Steven's books describes using a pipe and a signal handler so that
poll/select can be used with a posix message queue (its not pretty though).

(And I have seen it implemented in a program that relays packets between a
 socket and a posix message queue - This is a program that use to use a SysV
 message queue. The original programmer put a busy wait loop that would
 take up 30% of the CPU).

I don't think that SysV message queues provide any notification mechanism, do they?