Commit graph

24 commits

Author SHA1 Message Date
Ivailo Monev
614568e372 kdecore: fix runtime assert about accessing global static after its destruction
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-23 12:37:06 +03:00
Ivailo Monev
ca2afde49f kdecore: use qHash() to make lock name
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-20 12:13:01 +03:00
Ivailo Monev
88394f1a7f kdecore: use QCryptographicHash::hash() to make lock name
converting the file to hex can result in way too long file name and
infinite loop in KLockFile::lock()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-20 12:04:51 +03:00
Ivailo Monev
c4ae9e0460 kdecore: save lock files in the global temporary directory
O_CLOEXEC won't do it but saving the locks in /tmp or other directory that
is purged across reboot will remove stale locks

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-09 21:16:04 +03:00
Ivailo Monev
85d6590693 kdecore: remove unused system signal header inclusion in klockfile_unix source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-09 01:06:54 +03:00
Ivailo Monev
95a8be4470 kdecore: rewrite KLockFile
the PID check was racy, bonus points for not writing data at all to the
lock and not reading it meaning less disk I/O

oh, yes - by using O_CLOEXEC the lock is stale-safe

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-09 00:46:42 +03:00
Ivailo Monev
afa983f02f kdecore: remove unused buffer in KLockFilePrivate::tryLock()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-15 07:25:41 +03:00
Ivailo Monev
6ba957038d kdecore: KLockFile optimization
also not storing the host name because it serves no real purpose other than
being a possible source of problem (hostname change?), copyrighting it to
me because there is nothing relevant left of the original implementation

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-14 03:34:48 +03:00
Ivailo Monev
ca379a7d67 kdecore: tweak the KLockFile sleep time
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-06-14 02:43:21 +03:00
Ivailo Monev
90dcd31b77 kdecore: tune busy loops for more throughput
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-16 20:39:36 +03:00
Ivailo Monev
82a503ebb3 kdecore: minor KLockFile optimization
it is cheaper to realloc() the QByteArray data

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 17:34:42 +03:00
Ivailo Monev
0812a98d19 kdecore: block only when another process is holding the lock in KLockFile::lock()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 14:12:41 +03:00
Ivailo Monev
5d42434579 kdecore: KLockFile branches optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 03:41:29 +03:00
Ivailo Monev
cada9f78a4 kdecore: KLockFile rewrite
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 03:28:20 +03:00
Ivailo Monev
5a32a5865c kdecore: drop support for locking NFS files on servers v3 or older
note that KLockFile is used only by KConfig (its INI backend), anything
not using KConfig to access files is not affected by the lock method
KLockFile uses

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-10-08 01:20:50 +03:00
Ivailo Monev
7dc5187778 kdecore: replace most of KRandomSequence with new KRandom::randomMax() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-26 12:58:37 +03:00
Ivailo Monev
29a8459798 generic: remove checks for system headers that should be present
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-23 15:42:09 +03:00
Ivailo Monev
c2520f5903 generic: compiler warning fixes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-07-05 17:36:45 +03:00
Ivailo Monev
08ce90c113 kdecore: use usleep() instead of select() in KLockFile::lock()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-06-23 15:11:21 +03:00
Ivailo Monev
04b95f0de7 kdecore: indent and format
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-06-22 19:09:23 +03:00
Ivailo Monev
6c67e5adf8 generic: make use of QHostInfo::localHostName()
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
2019-06-21 19:56:58 +00:00
Ivailo Monev
0a78c4ef65 generic: misc cleanups 2015-08-27 20:35:05 +03:00
Ivailo Monev
21ad0df488 generic: make changes required for building against katie 2015-08-11 05:56:07 +03:00
Ivailo Monev
814163a8dc initial import 2014-11-13 01:04:59 +02:00