From: Enno Boland (tox) Date: Thu, 6 May 2010 11:58:49 +0000 (+0200) Subject: implementing naive file locking. X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=602eb616231b4606ca09dc2f98b1c3d22b8538d5;p=surf.git implementing naive file locking. --- diff --git a/surf.c b/surf.c index 6e3db36..01b6fb1 100644 --- a/surf.c +++ b/surf.c @@ -18,6 +18,7 @@ #include #include #include +#include #define LENGTH(x) (sizeof x / sizeof x[0]) #define CLEANMASK(mask) (mask & ~(GDK_MOD2_MASK)) @@ -703,6 +704,10 @@ scroll(Client *c, const Arg *arg) { void setcookie(SoupCookie *c) { + int lock; + + lock = open(cookiefile, 0); + flock(lock, LOCK_EX); SoupDate *e; SoupCookieJar *j = soup_cookie_jar_text_new(cookiefile, FALSE); c = soup_cookie_copy(c); @@ -712,6 +717,8 @@ setcookie(SoupCookie *c) { } soup_cookie_jar_add_cookie(j, c); g_object_unref(j); + flock(lock, LOCK_UN); + close(lock); } void