bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#16157: 24.3.50; desktop-read doesn't claim the unused lock


From: Juri Linkov
Subject: bug#16157: 24.3.50; desktop-read doesn't claim the unused lock
Date: Tue, 04 Feb 2014 09:54:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)

> When the previous session crashes or freezes, and .emacs.desktop.lock
> contains the PID of the previous process, then `desktop-read' asks
>
>   Warning: desktop file appears to be in use by PID...
>   Using it may cause conflicts.  Use it anyway? (y or n)  y
>
> But answering `y' doesn't claim the ownership of the lock,
> desktop-owner is still an old nonexistent process, and thus
> auto-saving doesn't save the desktop.
>
> Maybe `desktop-read' should call `desktop-claim-lock' in this case?

I guess the right thing to do here is what its comment suggests to do:
"mark it as in-use, to bother other desktop instances".  Actually it
shouldn't bother other desktop instances when other instances crashed.

=== modified file 'lisp/desktop.el'
--- lisp/desktop.el     2014-01-01 07:43:34 +0000
+++ lisp/desktop.el     2014-02-04 07:53:37 +0000
@@ -1103,9 +1106,12 @@ (defun desktop-read (&optional dirname)
            ;; Evaluate desktop buffer and remember when it was modified.
            (load (desktop-full-file-name) t t t)
            (setq desktop-file-modtime (nth 5 (file-attributes 
(desktop-full-file-name))))
-           ;; If it wasn't already, mark it as in-use, to bother other
+           ;; If it wasn't already owned, mark it as in-use, to bother other
            ;; desktop instances.
-           (unless owner
+           (unless (eq (emacs-pid) owner)
              (condition-case nil
                  (desktop-claim-lock)
                (file-error (message "Couldn't record use of desktop file")





reply via email to

[Prev in Thread] Current Thread [Next in Thread]