Use a separate list and mutex for loggers.
authorTobias Brunner <tobias@strongswan.org>
Thu, 29 Dec 2011 18:13:08 +0000 (19:13 +0100)
committerTobias Brunner <tobias@strongswan.org>
Wed, 2 May 2012 12:45:38 +0000 (14:45 +0200)
commitf9f867899ae5f7198d2c80bf2519e542556095ba
tree43deb74a6bc6b00257b0b808a351c9d2e42298b9
parentecb5abd7fa7a5a53afdbd4dee28a7806b317f4e4
Use a separate list and mutex for loggers.

This avoids deadlocks caused by extensive listener_t implementations
which might want to acquire a lock which is currently held by another
thread wanting to log messages. Since the latter requires that thread
to acquire the same lock the initial thread currently holds this
previously resulted in a deadlock.

With this change logging messages does not require threads to acquire
the main lock in bus_t and thus avoids the deadlock.
src/libcharon/bus/bus.c
src/libcharon/bus/bus.h
src/libcharon/bus/listeners/listener.h