GSoC/GCI Archive
Google Code-in 2012 BRL-CAD

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:


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.