Defining TEVENT_NUM_SIGNALS as (2 * SIGRTMIN) so that SIGNAL-based AIO handling on FreeBSD works
Jeremy Allison
jra at samba.org
Mon Dec 3 12:41:54 MST 2012
On Fri, Nov 30, 2012 at 03:06:18PM -0800, Richard Sharpe wrote:
> Hi folks,
>
> I am canvassing opinions on whether there is a better way to do this.
>
> Currently, the default AIO stuff in Samba does not work on FreeBSD
> because TEVENT_NUM_SIGNALS is set to 64 and there is a check to see
> that the signal number used by the AIO stuff does not exceed this
> number.
>
> However, if RT_SIGNAL_AIO Is not set, then:
>
> /* The signal we'll use to signify aio done. */
> #ifndef RT_SIGNAL_AIO
> #define RT_SIGNAL_AIO (SIGRTMIN+3)
> #endif
>
> in source3/smbd/aio.c but on FreeBSD
>
> /usr/include/sys/signal.h:#define SIGRTMIN 65
>
> So, things do not work.
>
> One solution is to define TEVENT_NUM_SIGNALS as 2 * SIGRTMIN ...
>
> On Linux SIGRTMIN is 32.
>
> Can anyone suggest a better fix?
Took a quick look at this and at least on Linux there's
#define SIGRTMAX
which looks like it might be part of the POSIX-RT standard.
Is this defined on *BSD ? If so, what is it defined to ?
Jeremy
More information about the samba-technical
mailing list