X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=wrw%2Fsession.py;h=c45090a16a33cbbba003c6e71078e1843d63deef;hb=f2e2dc9ed9d0d3ed04f7347846889dd85138b23c;hp=2abe650718040207fc43f78b0d520dc7e0327b51;hpb=e70341b29473cc8ceb48089991f165cbad7a6ece;p=wrw.git diff --git a/wrw/session.py b/wrw/session.py index 2abe650..c45090a 100644 --- a/wrw/session.py +++ b/wrw/session.py @@ -129,14 +129,15 @@ class db(object): sess.atime = now except KeyError: sess = session() - self.live[sess.id] = sess new = True def ckfreeze(req): if sess.dirty(): + if new: + cookie.add(req, self.cookiename, sess.id, self.path) + with self.lock: + self.live[sess.id] = sess try: - if new: - cookie.add(req, self.cookiename, sess.id, self.path) self.freeze(sess) except: pass @@ -165,7 +166,7 @@ class backeddb(db): raise KeyError() def freeze(self, sess): - self.backdb[sess.id] = pickle.dumps(sess) + self.backdb[sess.id] = pickle.dumps(sess, -1) sess.frozen() class dirback(object):