[part to lkml]
Alan, feel invited to add it to your -ac tree :-)
There are at least 3 attempts to provide POSIX mqueues for Linux:
a) early attempt of Jakub Jelinek based on 2.4-test based on a
filesystem with read/write/ioctl interface - very intrusive to ipc/msg.c
b) http://www.mat.uni.torun.pl/~wrona/posix_ipc
complicated standalone version (against recent 2.4), with
multiplexed syscall - and great effort to keep track of resources
which is far easier accomplished by vfs
c) based on a filesystem with its own syscalls and clean separation
(but dependence ) on SysV ipc/msg.c
why separate syscalls? you cannot specify the priority of a sent
message without ioctl/fcntl, also problems with timed versions - and
yes there is an outstanding issue with priority aware waitqueues
interface stub and userspace implementation is on
http://homepage.mac.com/pwaechtler/linux/mqueue.tgz
The userspace implementation is not complete. There we have the problems
with the locks on crashing apps (we could use flock), signal safety but what
about the timed versions? Performance is not as good as kernel version!?
following patch is against 2.5.49
Am Montag, 25. November 2002 00:24 schrieb Andrew Morton:
> Peter Waechtler wrote:
> > ...
> > kernel.patch Type: text/x-diff
>
> It's not legal to call copy_*_user inside spinlock. You
> sem to dothin in several places.
Yes, I know.
here a fixed version - there was also an error in putting the mqflags
together in setattr/getattr