Remove all timer deadlocks by using idle_add priority for them.
commite1fc290ef2bfaf7a81cb34fba68383704e624b55
authorauouymous <au@qzx.com>
Sat, 17 Dec 2022 22:49:52 +0000 (17 15:49 -0700)
committerauouymous <au@qzx.com>
Tue, 3 Jan 2023 13:01:15 +0000 (3 06:01 -0700)
tree3ee3a44197ba176ecb0563cd99a7b1cbb28d9bf6
parentd2f34d0d87304d982918fecb34407c26b710cef7
Remove all timer deadlocks by using idle_add priority for them.

Add util.idle_timeout_add() to register timers with the same priority as
idle_add(). Change the IdleTimeout to also use the idle_add() priority.
This eliminates the chance of a timer blocking any idle_add from
running.

Change most timeout_add's to idle_timeout_add. Change the timer in
DownloadStatusModel::get_next() back to an idle_add.
src/gpodder/gtkui/download.py
src/gpodder/gtkui/interface/progress.py
src/gpodder/gtkui/interface/searchtree.py
src/gpodder/gtkui/main.py
src/gpodder/util.py