Subject: Re: bug#16967: frame related race condition

From: martin rudalics <[email-masked]>
Date: Mon, 10 Mar 2014 10:04:40 +0100

> emacs -Q
 >
 > then type this in *scratch*
 >
 > (let* ((c (selected-frame))
 >        (f (make-frame)))
 >   (sit-for 0)
 >   (select-frame-set-input-focus f)
 >   (sit-for 0)
 >   (delete-frame c))
 >
 > then evaluate the let repeteadly. It's not hard to get "let*: Attempt
 > to delete the sole visible or iconified frame".

Confirmed.  But doing

(while t
   (let* ((c (selected-frame))
	 (f (make-frame)))
     (sit-for 0)
     (select-frame-set-input-focus f)
     (sit-for 0)
     (delete-frame c)))

here chokes only the first time around and proceeds without complaints
afterwards.  Is it that what you mean or are there additional problems?

And if possible, can you show the value of f->visible of the other
frame, that is the one that should be retained, at the time Emacs
complains that you want to delete its only visible or iconified frame?

martin