summaryrefslogtreecommitdiff
path: root/service/dconf-writer.c
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2010-07-17 12:20:33 -0400
committerRyan Lortie <desrt@desrt.ca>2010-07-17 12:21:26 -0400
commitbece1f7488e07c2d3f2c9b978ef0065a3ab1413f (patch)
tree5f12dd60af9475f0ba909a335e84d0dc28b64fd8 /service/dconf-writer.c
parent6eec812ad4a014b679e630aca5fc1917a1d2b665 (diff)
downloaddconf-bece1f7488e07c2d3f2c9b978ef0065a3ab1413f.tar.gz
Move shmdir guessing code to common/
Increase the intelligence of the algorithm: use ~/.cache/dconf as a reasonable default if not on NFS. The dconf engine now has a non-blocking startup when not on NFS.
Diffstat (limited to 'service/dconf-writer.c')
-rw-r--r--service/dconf-writer.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c
index a165ed5..7f7ff7f 100644
--- a/service/dconf-writer.c
+++ b/service/dconf-writer.c
@@ -1,5 +1,6 @@
#include "dconf-writer.h"
+#include "dconf-shmdir.h"
#include "dconf-rebuilder.h"
#include <unistd.h>
@@ -158,9 +159,14 @@ dconf_writer_init (void)
dconf_writer_db_dir, g_strerror (errno));
}
- dconf_writer_shm_dir = g_build_filename (cache_dir, "dconf", NULL);
+ dconf_writer_shm_dir = dconf_shmdir_from_environment ();
- if (g_mkdir_with_parents (dconf_writer_shm_dir, 0700))
- g_error ("Can not create directory '%s': %s",
- dconf_writer_shm_dir, g_strerror (errno));
+ if (dconf_writer_shm_dir == NULL)
+ {
+ dconf_writer_shm_dir = g_build_filename (cache_dir, "dconf", NULL);
+
+ if (g_mkdir_with_parents (dconf_writer_shm_dir, 0700))
+ g_error ("Can not create directory '%s': %s",
+ dconf_writer_shm_dir, g_strerror (errno));
+ }
}