kernel-netlink: Release lock while doing Netlink NEW/DELADDR operations
authorMartin Willi <martin@revosec.ch>
Wed, 16 Jul 2014 09:59:59 +0000 (11:59 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 21 Nov 2014 09:55:45 +0000 (10:55 +0100)
commit9b43dddff4dee37a1b527482403d2e9d5ed6ece0
treeebfa3890ff16cb55ff2f36d6b7f32c8f2ccd52a5
parent4b41ea956cb9ee2bdabf969ffd0937e946fdd5e5
kernel-netlink: Release lock while doing Netlink NEW/DELADDR operations

Besides that it can improve throughput, it avoids a deadlock situation. If
all threads are busy, watcher will invoke the FD notification for NEWADDR
events itself. If the lock is held, it gets locked up. As watcher is not
dispatching anymore, it can't signal Netlink socket send() completion, and
the send() operation does not return and keeps the lock.
src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c