Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Sep 2016 18:11:16 -0500
From:      Lewis Donzis <lew@perftech.com>
To:        freebsd-arch@freebsd.org
Subject:   mq on kqueue broken after upgrade to FreeBSD 11  
Message-ID:  <8A6CD0D3-C4D5-40DF-B2AD-4C454CC88AD1@perftech.com>

next in thread | raw e-mail | index | archive | help
I had posted this on the userland forum, but it was suggested that I =
re-post it to this mailing list, so here goes=E2=80=A6

We have applications that are using kevent() with, among other things, =
POSIX message queues, so they can wake up when data is ready.

As such, we were using __mq_oshandle() to get a handle from an mqd_t, =
suitable for passing to kevent().

However, this function appears to have been removed from publication in =
FreeBSD 11.0, although it still exists in the source. I saw some =
discussion about it being a mistake to have been available previously, =
but plenty of other __mq_*() functions are still public.

So the question is, how is one supposed to get a kevent() on a POSIX =
message queue, now that the fd is no longer available?

(I realize that one could argue that it was never supported, but it does =
(did) work, and why else would the kernel uipc_mqueue.c have code for =
supporting it? And that's not to mention that __mq_oshandle() is still =
declared in /usr/include/mqueue.h)

Thanks,
lew




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8A6CD0D3-C4D5-40DF-B2AD-4C454CC88AD1>