Fix race condition in url-queue when doing the callback
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sun, 25 Mar 2012 13:38:22 +0000 (15:38 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Sun, 25 Mar 2012 13:38:22 +0000 (15:38 +0200)
* url-queue.el (url-queue-kill-job): Check whether the buffer has
been killed asynchronously before selecting it.

lisp/url/ChangeLog
lisp/url/url-queue.el

index ff6a6e6..d6e2518 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * url-queue.el (url-queue-kill-job): Check whether the buffer has
+       been killed asynchronously before selecting it.
+
 2012-03-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * url-queue.el (url-queue-kill-job): Make sure that the callback
index 4612471..917c787 100644 (file)
@@ -160,7 +160,8 @@ The variable `url-queue-timeout' sets a timeout."
   ;; Call the callback with an error message to ensure that the caller
   ;; is notified that the job has failed.
   (with-current-buffer
-      (if (bufferp (url-queue-buffer job))
+      (if (and (bufferp (url-queue-buffer job))
+              (buffer-live-p (url-queue-buffer job)))
          ;; Use the (partially filled) process buffer it it exists.
          (url-queue-buffer job)
        ;; If not, just create a new buffer, which will probably be