Skip to content

gsignal: Perform signal unlocked handlers block, unblock and disconnect ops

Marco Trevisan requested to merge 3v1n0/glib:gsignal-threading-cleanup into main

We used to perform unneeded lock/unlock dances to perform block, unblock and disconnect actions, and these were potentially unsafe because we might have looped in data that could be potentially be changed by other threads.

We could have also done the same by saving the handlers ids in a temporary array and eventually remove them, but I don't see a reason for that since we can just keep all locked without the risk of creating deadlocks.

Coverity CID: #1474757, #1474771, #1474429

Merge request reports