summaryrefslogtreecommitdiff
path: root/service/dconf-writer.c
diff options
context:
space:
mode:
authorRyan Lortie <desrt@desrt.ca>2010-12-19 02:59:50 -0500
committerRyan Lortie <desrt@desrt.ca>2010-12-19 02:59:50 -0500
commit4f8a137821db0209f1cf1dc1573ebec0cf513292 (patch)
tree701213a7735cdbc38f10218281fa0548832bc103 /service/dconf-writer.c
parent1e66c619a7f58a729ea749af65d2b8baa542d012 (diff)
downloaddconf-4f8a137821db0209f1cf1dc1573ebec0cf513292.tar.gz
service: avoid making invalid syscalls
If we can't open the shm file then don't bother trying to write/close/unlink it.
Diffstat (limited to 'service/dconf-writer.c')
-rw-r--r--service/dconf-writer.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c
index 71d694c..3cf58f5 100644
--- a/service/dconf-writer.c
+++ b/service/dconf-writer.c
@@ -81,10 +81,17 @@ dconf_writer_touch_shm (DConfWriter *writer)
gint fd;
fd = open (writer->shm, O_WRONLY);
- write (fd, &one, sizeof one);
- close (fd);
- unlink (writer->shm);
+ if (fd >= 0)
+ {
+ write (fd, &one, sizeof one);
+ close (fd);
+
+ unlink (writer->shm);
+ }
+
+ else if (errno != ENOENT)
+ unlink (writer->shm);
}
gboolean