Redesign dlopen() locks to be recursive per thread.
That is to fix the bug:
dlxxx functions can't be called recursively.
For example, if we use dlopen() to use open one library whose constructor
also calls dlopen() in order to open another library, then the thread is
By changing the dl_lock from a non-recursive lock to a recursive lock, we can
prevent the thread from dead-blocked by recursive dlxxx calls in the same
Signed-off-by: Pavel Chupin <firstname.lastname@example.org>
Signed-off-by: Jack Ren <email@example.com>
Signed-off-by: Bruce Beare <firstname.lastname@example.org>
1 file changed