Integrate new thread affinity interface into LIBBU and LIBRT
completed by: Skriptkid
mentors: Sean
Work was completed recently that successfully demonstrated the value of implementing threading affinity:
- http://www.google-melange.com/gci/task/view/google/gci2012/7960222
This task involves cleaning up that work and polishing it into production-quality code. That nominally involves the following:
- hooking behind bu_parallel(), not the individual worker functions
- unwrapping the new function so it's always available
- documenting the function properly (missed that mistake before closing the task)
- pulling the static globals into the callback in parallel.c
- creating a separate callback that takes an arg
- make the one with static data call the new arg one
- updating the callback to utilize the arg parameter, pass it during pthread_create()
- update the other platforms to do the same where we can, and finally
- sorting out what to do with _GNU_SOURCE (since just testing means it'll never be set)
Submit your work as a single patch file. Note this task requires meticulous attention to detail.