Bug #1520
closedPOSIX message queues port
0%
Description
Salute.
I have ported the POSIX messages queues NetBSD implementation to Dfly, for the
Summer of Code project.
The code is available here:
http://gitweb.dragonflybsd.org/~beket/dragonfly.git/shortlog/refs/heads/mq-sync-clean
It is synced (hence the -sync in the branch name) with the latest netbsd
changes. I will be removing the debug k/printfs the following days, plus any
other commented out code of the original source (hence the -clean part).
I have written a bunch of test cases, which are available here:
http://gitweb.dragonflybsd.org/~beket/pcca-tests.git/tree/master:/mqueue.h
There s also a utility that lists active message queues similar to ipcs(1).
E.g.,
$ gcc kvm-mqueue.c o kvm-mqueue -lkvm -Wall -W -ansi -pedantic RW-- 0 32 1004 0
$ sudo ./kvm-mqueue
Global list of the message queues:
Name Ptr Mode Flags Ref MaxMsg MsgSze CurMsg
/nonblock 0xcc7c3780 rwxr--r-
/many 0xcc796924 rwxr--r-- RWB- 5 32 1004 0
/tmqoc2 0xcc796780 rwxr-xr-x RWB- 0 32 1004 0
$
The port works very well. There are some glitches, but I`d rather tackle them,
after it is integrated to master.
I have also ran an almost-complete pbulk to verify that I haven t broken
horribly the pkgsrc. I have managed to compile ~6200 packages and at that point
I didn t have more than 700 failures.
I could use a helping hand though on how to handle the merge. Perhaps I should
do a squash merge and then create the following commits?
1. mqueues commit
2. librt commit
3. other stuff that don t fit to 1/2
Any thoughts/ideas would be appreciated.
Best regards,
Stathis