Defining TEVENT_NUM_SIGNALS as (2 * SIGRTMIN) so that SIGNAL-based AIO handling on FreeBSD works

Stefan (metze) Metzmacher metze at samba.org
Tue Dec 4 00:20:11 MST 2012


Am 03.12.2012 20:41, schrieb Jeremy Allison:
> 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 ?

At least this doesn't work on Linux.

https://gitweb.samba.org/?p=metze/samba/wip.git;a=commitdiff;h=9a92ca3b637d41709ded56a5161ff9ff7505f677

As SIGRTMAX is not a const value.

metze

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20121204/bd985071/attachment.pgp>


More information about the samba-technical mailing list