From unknown Fri Aug 15 12:50:49 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#65025 <65025@debbugs.gnu.org> To: bug#65025 <65025@debbugs.gnu.org> Subject: Status: Possible race in make-frame Reply-To: bug#65025 <65025@debbugs.gnu.org> Date: Fri, 15 Aug 2025 19:50:49 +0000 retitle 65025 Possible race in make-frame reassign 65025 emacs submitter 65025 Anders Blomdell severity 65025 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 02 13:37:27 2023 Received: (at submit) by debbugs.gnu.org; 2 Aug 2023 17:37:27 +0000 Received: from localhost ([127.0.0.1]:50103 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qRFmo-0006Ov-CG for submit@debbugs.gnu.org; Wed, 02 Aug 2023 13:37:27 -0400 Received: from lists.gnu.org ([2001:470:142::17]:45222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qRCyn-0007gQ-9k for submit@debbugs.gnu.org; Wed, 02 Aug 2023 10:37:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRCyh-0006Mr-MC for bug-gnu-emacs@gnu.org; Wed, 02 Aug 2023 10:37:31 -0400 Received: from wedge010.net.lu.se ([2001:6b0:16:1:5ee:bad:c0de:2200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1qRCyf-0007Vf-C1 for bug-gnu-emacs@gnu.org; Wed, 02 Aug 2023 10:37:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; d=control.lth.se; s=edge; c=relaxed/relaxed; t=1690984925; h=from:subject:to:date:message-id; bh=F5PSRjES6x1O/JLL1bE7rS+7H90hYPVIW7hY5gv4ZzQ=; b=TCuYMIvzTK3oxiJbK/jfgtphcMhf8g2gCCR5NaUqDPKMk3vE0DsOfyVmOT+9U0eULX9pfwiCbE4 YUXf2vlevQl49jcL6HU1l7q8LutA+t0UyEdPf8eVAlOt6i1iD05Tk3brpWo2Sf3p3RpwCWGHc+zvD Ma7Qkd7EtTOgq1dv+evRsUiqjeneCnGE50xvyx4T36s7jO0F16XwZusyICPDZXNJlNcbpIQp5XFIZ m1Z1PJj7r3744/wId9BB8yhY1dKpNftdQbZBM5chSkz7ChvQae1jZqOupJKkPr64CREd4XwoLmI1L uo1DSPbD0mhC52WcDDEQoQ2qCCxGpUOIGcOA== Received: from wexc010.uw.lu.se (130.235.59.254) by mail.lu.se (130.235.56.200) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.2507.27; Wed, 2 Aug 2023 16:02:05 +0200 Received: from [130.235.83.196] (130.235.139.100) by wexc010.uw.lu.se (130.235.59.254) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521) id 15.1.2507.27; Wed, 2 Aug 2023 16:02:06 +0200 Message-ID: Date: Wed, 2 Aug 2023 16:02:06 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Content-Language: en-US To: From: Anders Blomdell Subject: Possible race in make-frame Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [130.235.139.100] X-ClientProxiedBy: wexc007.uw.lu.se (130.235.59.251) To wexc010.uw.lu.se (130.235.59.254) X-CrossPremisesHeadersFilteredBySendConnector: wexc010.uw.lu.se X-OrganizationHeadersPreserved: wexc010.uw.lu.se Received-SPF: Pass (wedge010.net.lu.se: domain of anders.blomdell@control.lth.se designates 130.235.59.254 as permitted sender) receiver=wedge010.net.lu.se; client-ip=130.235.59.254; helo=wexc010.uw.lu.se; X-CrossPremisesHeadersFilteredBySendConnector: wedge010.net.lu.se X-OrganizationHeadersPreserved: wedge010.net.lu.se Received-SPF: pass client-ip=2001:6b0:16:1:5ee:bad:c0de:2200; envelope-from=anders.blomdell@control.lth.se; helo=wedge010.net.lu.se X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 02 Aug 2023 13:37:23 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) When running /usr/bin/emacsclient --eval '(make-frame)' it sometimes (often) opens up a small window (10x21) instead of the expected 40x80 window. Setting a hook for after-make-frame-functions like this: (progn (setq after-make-frame-functions nil) (add-hook 'after-make-frame-functions (lambda (frame) (let ((width 80) (height 40) (start-width (frame-width frame)) (start-height (frame-height frame)) (visible (frame-visible-p frame))) (print (format "Start %dx%d %S" start-height start-width visible)) (if (not visible) (progn (while (not (frame-visible-p frame)) (progn (sleep-for 0.001) (print (format "X %dx%d" (frame-height frame) (frame-width frame))) )) (sleep-for 0.001) (print (format "Resetting %dx%d -> %dx%d" (frame-height frame) (frame-width frame) height width)) (set-frame-width frame width) (set-frame-height frame height) (sleep-for 0.1) (print (format "Resetting %dx%d -> %dx%d" (frame-height frame) (frame-width frame) height width)) (set-frame-width frame width) (set-frame-height frame height) ) ) ) (print (format "Done %dx%d" (frame-height frame) (frame-width frame))) ) ) ) usually has two different outcomes: "Start 10x38 t" "Done 10x38" or "Start 40x80 nil" "X 40x80" "X 40x80" "X 40x80" "X 10x21" "Resetting 10x21 -> 40x80" "Resetting 40x80 -> 40x80" "Done 40x80" -- Anders Blomdell Email: anders.blomdell@control.lth.se Department of Automatic Control Lund University Phone: +46 46 222 8793 P.O. Box 118 SE-221 00 Lund, Sweden From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 02 13:51:51 2023 Received: (at 65025) by debbugs.gnu.org; 2 Aug 2023 17:51:51 +0000 Received: from localhost ([127.0.0.1]:50116 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qRG0l-0006qk-EI for submit@debbugs.gnu.org; Wed, 02 Aug 2023 13:51:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qRG0j-0006qW-TR for 65025@debbugs.gnu.org; Wed, 02 Aug 2023 13:51:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRG0d-0006L4-Sf; Wed, 02 Aug 2023 13:51:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=3iuxCZvHviYdmxxtjkB/HPFcYxaZX1789YO23PpZtAo=; b=SLYpH5o6/UeA oXVLUIFe/uQBI7qCI9+srHIknYOHvDRCN93kBlLbi2CVy5YMwkjGLonu/uZMpGHxGSCezU2EC226v 7AWmde+VvobfSIXw+JB8PJBBJOEreOXBhAxGwKlqFztsLYtMM69QvQKqWZoISSLJ+iMUbKBnScE6a 3rzwYjBpv31qXsPWKSmsz9ZT2DDnZqWmvdtAgaKXeuVmBKuNldj6GABPGqqwyCr2bvm7ZyClTffHW +rkBjmveOiRS83Ggd20lw+qqWu5CqcNhxerQcmhFx3dNl+vT4p61uymCJCwT9n71S4cI3NP/iIOa3 Ftd5AS0P5XmcePebmQI0Gw==; Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qRG0d-00081X-Br; Wed, 02 Aug 2023 13:51:43 -0400 Date: Wed, 02 Aug 2023 20:51:51 +0300 Message-Id: <83cz05z614.fsf@gnu.org> From: Eli Zaretskii To: Anders Blomdell In-Reply-To: (bug-gnu-emacs@gnu.org) Subject: Re: bug#65025: Possible race in make-frame References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 65025 Cc: 65025@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 2 Aug 2023 16:02:06 +0200 > From: Anders Blomdell via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > When running > > /usr/bin/emacsclient --eval '(make-frame)' > > it sometimes (often) opens up a small window (10x21) instead of the expected 40x80 window. > > Setting a hook for after-make-frame-functions like this: > > (progn > (setq after-make-frame-functions nil) > (add-hook > 'after-make-frame-functions > (lambda (frame) > (let ((width 80) > (height 40) > (start-width (frame-width frame)) > (start-height (frame-height frame)) > (visible (frame-visible-p frame))) > (print (format "Start %dx%d %S" > start-height start-width visible)) > (if (not visible) > (progn > (while > (not (frame-visible-p frame)) > (progn > (sleep-for 0.001) > (print (format "X %dx%d" > (frame-height frame) > (frame-width frame))) > )) > (sleep-for 0.001) > (print (format "Resetting %dx%d -> %dx%d" > (frame-height frame) (frame-width frame) > height width)) > (set-frame-width frame width) > (set-frame-height frame height) > (sleep-for 0.1) > (print (format "Resetting %dx%d -> %dx%d" > (frame-height frame) (frame-width frame) > height width)) > (set-frame-width frame width) > (set-frame-height frame height) > ) > ) > ) > (print (format "Done %dx%d" > (frame-height frame) > (frame-width frame))) > ) > ) > ) > > > > usually has two different outcomes: > > "Start 10x38 t" > "Done 10x38" > > or > > "Start 40x80 nil" > "X 40x80" > "X 40x80" > "X 40x80" > "X 10x21" > "Resetting 10x21 -> 40x80" > "Resetting 40x80 -> 40x80" > "Done 40x80" Isn't this because we wait fro X to resize the frame after we ask for it?