libubus: fix deadlock in recursive synchronous ubus requests
authorFelix Fietkau <nbd@openwrt.org>
Sat, 11 May 2013 18:39:54 +0000 (20:39 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 11 May 2013 18:39:54 +0000 (20:39 +0200)
commitdd3afa517d4fefaadee9fcefefd2e503e251e909
treef3f7123477f50f4e8f36b11e1387b7341a883b78
parent90037b772c525ad734acb4641c9dacb7abf48ffe
libubus: fix deadlock in recursive synchronous ubus requests

When synchronous request completion loops are running, the innermost
loop can receive events that can unblock the outer loops, however the
loop clears uloop_cancelled (which is set by the request completion).

This causes the event loop to continue running even while a completion
loop has already been unblocked.

Fix this by not clearing uloop_cancelled for inner loops

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
libubus-req.c