forked from pool/powerdevil6
Compare commits
32 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| bb0c964dc3 | |||
| 1e9c28f777 | |||
|
|
f17828ae60 | ||
| 0b41a6c8cd | |||
|
|
c108b0fb66 | ||
| 7542e2e476 | |||
|
|
e8cb8f176d | ||
| 6205063123 | |||
|
|
dceb88e1d3 | ||
| 648efbe1ec | |||
|
|
eea0e8d39e | ||
| 24f68b5b9c | |||
| 3e605ee375 | |||
|
|
857fd906fb | ||
|
|
e88ab3e321 | ||
| 209d3f01f0 | |||
|
|
f3dd23e597 | ||
| 71e6239952 | |||
|
|
59058ba993 | ||
| 58a3b6c88a | |||
|
|
d0da96d1a6 | ||
| d40beb4148 | |||
|
|
b791ebf290 | ||
| c3d641ee36 | |||
|
|
0bd25152fd | ||
| 65e9f7344d | |||
| c5573e06cc | |||
|
|
597dc61a53 | ||
|
|
655d8fb9c5 | ||
| 9258c81b3f | |||
|
|
c6ff518d5f | ||
|
|
a91db735f5 |
@@ -1,53 +0,0 @@
|
||||
From 8c1686c9e97edb9a06e06e2f41cfe5351cef7986 Mon Sep 17 00:00:00 2001
|
||||
From: Jakob Petsovits <jpetso@petsovits.com>
|
||||
Date: Thu, 18 Jul 2024 17:14:06 +0000
|
||||
Subject: [PATCH] daemon: Don't leave dangling Action pointers in idle-time
|
||||
containers
|
||||
|
||||
If we delete the Action but don't clean up related map/set elements,
|
||||
the powerdevil daemon can crash e.g. in Core::onResumingFromIdle()
|
||||
and Core::onKIdleTimeoutReached().
|
||||
|
||||
This has been an issue since commit 584cfdf0 (or d91bc62f on 6.1)
|
||||
which made it possible for already-created actions to get deleted
|
||||
again at a later time.
|
||||
|
||||
BUG: 490356
|
||||
BUG: 490421
|
||||
|
||||
|
||||
(cherry picked from commit 7a929fa01ed036f60c5a15c72416b4e40eb03160)
|
||||
|
||||
Co-authored-by: Jakob Petsovits <jpetso@petsovits.com>
|
||||
---
|
||||
daemon/powerdevilcore.cpp | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/daemon/powerdevilcore.cpp b/daemon/powerdevilcore.cpp
|
||||
index 915ca0ad..838b5c05 100644
|
||||
--- a/daemon/powerdevilcore.cpp
|
||||
+++ b/daemon/powerdevilcore.cpp
|
||||
@@ -224,10 +224,16 @@ void Core::refreshActions()
|
||||
}
|
||||
|
||||
// Remove now-unsupported actions
|
||||
- std::erase_if(m_actionPool, [](const auto &pair) {
|
||||
- const auto &[name, action] = pair;
|
||||
- return !action->isSupported();
|
||||
- });
|
||||
+ for (auto it = m_actionPool.begin(); it != m_actionPool.end();) {
|
||||
+ Action *action = it->second.get();
|
||||
+ if (!action->isSupported()) {
|
||||
+ m_registeredActionTimeouts.remove(action);
|
||||
+ m_pendingResumeFromIdleActions.remove(action);
|
||||
+ it = m_actionPool.erase(it);
|
||||
+ } else {
|
||||
+ ++it;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
bool Core::isActionSupported(const QString &actionName)
|
||||
--
|
||||
2.45.2
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:624f8c9498056d3c7065bb72a61a381fa2021dc36f5a1f32c735435b239918f3
|
||||
size 965420
|
||||
@@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEE4KPrIC+OV1KOE+cv11dEg7tXsY0FAmaWVVMACgkQ11dEg7tX
|
||||
sY1mGw/+N4ySMnQzp0dJWP6yVYTIphdbdZQtf9ExLvkSgsKln11I53/hIquSV/Zq
|
||||
9ocJrwA3h7WnO7Y2kAAiecXxMDh6pUR+ZgaQn1uJTpwIvf/E1bnP/WOMvCVNlCRl
|
||||
bQedOYMBz6aVPhjwDyqVhZAPbrKWrPDUQGy5X7z5r80IgaGokvgtqk0S6HKAr9r8
|
||||
lOgCimvC2SoWlPSuWFnLlu8nXuQxkxQ6O2qY3xBfyxbZuOTrhTtt0XIzwQ7Y/Tf0
|
||||
onHGSYqga8N5vuX8j/eyu+obYXdgmukNRU73O9dXkik2/dbTLEHDidwgeA2c/4t5
|
||||
Lze/DsEYcJnXY4cv3IyvBs+3gMXzMGt/Mc+xEZKH5V2M+85UVsNWehpthFh1/BJJ
|
||||
hPNj92/XRL1iY6ReFdYXQPzX1q6XmMWJi/pY+5P/XDWrw8AqyrP6T9s6CI79tomD
|
||||
v7XkuLx/J+w7M0cnzKLqL6BDlAuGzi7/g1Efgy4v2s6n0Nk0BoP0HzNip/1YX7mz
|
||||
XnKt0ofFZRg9fCvQqUJ3ozNvjruQrcH1DMe0zTSKyNqLV5LQRkLsV7a1FgrbuYNd
|
||||
GSwhIM2Hz7uIpIQZK8M6osFBno5Jmp77cfJWITQvR3l7ramqVD05gI85YyQc9/h7
|
||||
mEGU/afgvcQf5BxvviKVAqO8v0TUASkmylrnsBiZ13tXo5v5Rks=
|
||||
=1Dp4
|
||||
-----END PGP SIGNATURE-----
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a1a966e2e2498305e33397ef27dfa68d10255fcb7099b0d91c5eda8d429013e5
|
||||
size 967284
|
||||
@@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEE4KPrIC+OV1KOE+cv11dEg7tXsY0FAmayGNoACgkQ11dEg7tX
|
||||
sY05Ow/8C3h3FfK6QeZeu3S3RSKJlfX5wD8dnVRRj9/7Kt1xUGFhY300OKCiUwFg
|
||||
qmP+GLpxv4kmZ+1xCAObRorBYpt5dADOvRstGDlpwn/Z7Sn19JhMrXIZVvSarvnf
|
||||
fl0II3IMmzO9ckd8Lpsg9Aoj8d/p1OHgD5G/a5pEMvsGA5GVlkFuuj64LIt0X3+M
|
||||
0KTJTLjUDRJLIcTgT79SiJTJqtpqeiLlIkt0s2HYRLugDsCjYVnC3C9WYFnDS2ZV
|
||||
BJZ2YJKh9VkQ9XACYZXPO73X4cvGaOk3rk/yDhmaGsrEMS4nw89qICG3GVx5/XBO
|
||||
tfxxDZJGqEDwLPPsKTAeOxPHvGwTn2Gkb8L0JiEFw7ZD51SMAsO9nzZHBD09P1EF
|
||||
jAVSnNJmDfCFyMhhI/c9jfTZGkveEdirFvHlOZ7E6R+xQSAmqjEwOVg7kxU6AlIy
|
||||
9kQgf4GuW+tQI9lriMJyfC/jSvZMblBa6K0HmdrmchDYxYm5ATmmpN/jgsyXtr9q
|
||||
WPMbwYsvVvGv4VqTyv8dn0HHabE4ZQASm7tk1GU1mhvRafE312IPaNv2F5SLjqVc
|
||||
TOViHrPkBoCrTnWeij+c/1Vg7KyJ9ssqQajF5aSsGSgc+qnR62RfLJeyQiBMs8jn
|
||||
AGCH8RInHuV/pZP8h3bcc+t7CXL/ZynPBo9XV/shSfGwreDFHjQ=
|
||||
=h8V0
|
||||
-----END PGP SIGNATURE-----
|
||||
Reference in New Issue
Block a user