Several internal data structures in libcommon (list.c, hash.c minimally) are not compiled with the WITH_PTHREADS macro, thus are not thread safe. If some genders functions are called by multiple threads, badness can occur.
For example, genders_isattrval() is one example which creates list iterators. If multiple threads were to call genders_isattrval() on the same attr, multiple iterators could be created on the same list, leading to possible collisions in the internals of list.c.
If it is desired to make libgenders thread safe, code will probably need to be auditted to see what else may not be thread safe.
Several internal data structures in libcommon (
list.c,hash.cminimally) are not compiled with theWITH_PTHREADSmacro, thus are not thread safe. If some genders functions are called by multiple threads, badness can occur.For example,
genders_isattrval()is one example which creates list iterators. If multiple threads were to callgenders_isattrval()on the same attr, multiple iterators could be created on the same list, leading to possible collisions in the internals oflist.c.If it is desired to make
libgendersthread safe, code will probably need to be auditted to see what else may not be thread safe.