[X2Go-Commits] [x2gokdrive] 01/02: improve clearing of the frame list.
git-admin at x2go.org
git-admin at x2go.org
Thu Sep 16 09:53:54 CEST 2021
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2gokdrive.
commit 06bfff85073921415c2f1db03eb973455be9458e
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date: Tue Sep 14 13:57:45 2021 +0200
improve clearing of the frame list.
---
debian/changelog | 1 +
x2gokdriveremote.c | 13 ++++++++-----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 521ae99..3e17efc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -25,6 +25,7 @@ x2gokdrive (0.0.0.1-0x2go1) UNRELEASED; urgency=medium
- (re)enable sessions debugging.
- fix infinite loop if reading of cookie has failed.
- improve initialization of cursor frame and cache element structures.
+ - improve clearing of the frame list.
[ Mihai Moldovan ]
* Initial release:
diff --git a/x2gokdriveremote.c b/x2gokdriveremote.c
index 2cdc104..4125dcd 100644
--- a/x2gokdriveremote.c
+++ b/x2gokdriveremote.c
@@ -1703,13 +1703,15 @@ void clear_send_queue(void)
*/
void clear_frame_cache(uint32_t max_elements)
{
-// EPHYR_DBG("cache elements %d, cache size %lu\n",cache_elements, cache_size);
- while(remoteVars.first_cache_element && remoteVars.cache_elements > max_elements)
+// EPHYR_DBG("cache elements %d, cache size %lu, reducing to size: %d\n", remoteVars.cache_elements, remoteVars.cache_size, max_elements);
+ while(remoteVars.first_cache_element && (remoteVars.cache_elements > max_elements))
{
struct cache_elem* next = NULL;
- /* don't delete it now, return to it later */
- if(remoteVars.first_cache_element->busy)
+ /* don't delete it now, return to it later
+ * but if max_elements is 0 we are clearing all elements
+ */
+ if(remoteVars.first_cache_element->busy && max_elements)
{
EPHYR_DBG("%x - is busy (%d), not deleting", remoteVars.first_cache_element->crc, remoteVars.first_cache_element->busy);
return;
@@ -1721,7 +1723,8 @@ void clear_frame_cache(uint32_t max_elements)
remoteVars.cache_size-=remoteVars.first_cache_element->size;
}
- if(remoteVars.client_connected)
+ //add element to deleted list if client is connected and we are not deleting all frame list
+ if(remoteVars.client_connected && max_elements)
{
/* add deleted element to the list for sending */
struct deleted_elem* delem=malloc(sizeof(struct deleted_elem));
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdrive.git
More information about the x2go-commits
mailing list