Hi,

a fix that uses per-uid subdirectories below /var/lock/ has been
committed some time ago, see
40c7cb01ce52ece226a071808ec4e803ec14157b

The fix will be part of gkrellm 2.3.6 which hopefully will see a release
soon.
commit 40c7cb01ce52ece226a071808ec4e803ec14157b
Author: Bill Wilson <bi...@gkrellm.net>
Date:   Mon Aug 8 15:53:14 2011 -0500

    Store lockfiles under /var/lock/gkrellm-UID directories to make
    lockfiles work for multiple users.

diff --git a/Changelog b/Changelog
index df6c9c3..9936a28 100644
--- a/Changelog
+++ b/Changelog
@@ -10,6 +10,9 @@ GKrellM Changelog
 	  o ru.po from Roman Savochenko
 	  o uk.po new translation from Roman Savochenko
 	  o pt.po new translation from Ze based on pt_BR.po
+	* Bugfixes
+	  o Store lockfiles under /var/lock/gkrellm-UID directories to make
+	    lockfiles work for multiple users.
 
 2.3.5 - Thu Oct 7, 2010
 ------------------------
diff --git a/src/winops-x11.c b/src/winops-x11.c
index 8d4267c..a7305e4 100644
--- a/src/winops-x11.c
+++ b/src/winops-x11.c
@@ -270,14 +270,15 @@ _gkrellm_get_lock(void)
 	gchar	*lock_dir, *lock_file, *display, *s;
 	gchar	buf[32];
 
-	snprintf(buf, sizeof(buf), "LCK..%d", (gint) getuid());
+	snprintf(buf, sizeof(buf), "LCK..gkrellm");
 
 #if defined(F_TLOCK)
-	lock_dir = "/var/lock/gkrellm";
+	lock_dir = g_strdup_printf("/var/lock/gkrellm-%d", (gint) getuid());
 	if (!g_file_test(lock_dir, G_FILE_TEST_IS_DIR))
 		mkdir(lock_dir, 0755);
 
 	lock_file = gkrellm_make_config_file_name(lock_dir, buf);
+	g_free(lock_dir);
 	display = XDisplayName(NULL);
 	if (display)
 		{

Reply via email to