Having already checked What is a 'thunk'?, I'm still not sure why the extra argument passed to the re-entrant qsort_r would be called thunk.
Eg: (BSD style qsort_r)
void qsort_r(void *base_, size_t nmemb, size_t size, void *thunk,
             int (*compar)(void *, const void *, const void *));
To be clear, I know what the argument is for, and how to use it, just not why its called thunk (in the BSD's qsort_r at least).