How to implement qsort_r
Yaakov Selkowitz
yselkowi@redhat.com
Thu Dec 4 17:20:00 GMT 2014
On 2014-12-04 10:22, Corinna Vinschen wrote:
> On Dec 4 07:37, Eric Blake wrote:
>> On 12/04/2014 01:28 AM, Corinna Vinschen wrote:
>>> The implementation is pretty simple either way, so, yes, we could
>>> implement both and let the header provide both as well along the lines
>>> of strerror_r.
>>>
>>> Alternatively, are there any known efforts to standarize the API?
>>> Eric, any word from the Austin group in terms of qsort_r?
>>
>> No one has asked about it before; I can ask, but suspect that since
>> there is a difference in existing implementation, it would be easier for
>> POSIX to standardize a different function name than qsort_r than to pick
>> sides on which signature to standardize.
>>
>> My personal preference is the glibc style (the opaque argument last in
>> both qsort_r and the comparator), not the BSD style (the opaque argument
>> first in both calls), This is because POSIX already has other
>> standardized functions in the glibc style (pthread_cleanup_push,
>> pthread_create), and none in the BSD styloe.
>
> Good point. It's easier to implement, too, with qsort simply being a
> shim to qsort_r with a NULL opaque argument. The qsort comparison
> function won't even notice the extra argument.
I'll be borrowing the FreeBSD implementation either way, so that doesn't
seem to be a factor. I'll proceed with the patch.
--
Yaakov Selkowitz
Associate Software Engineer, ARM
Red Hat, Inc.
More information about the Newlib
mailing list