All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: "Rubén Justo" <rjusto@gmail.com>,
	"Git List" <git@vger.kernel.org>,
	"Dragan Simic" <dsimic@manjaro.org>, "Jeff King" <peff@peff.net>
Subject: Re: [PATCH v4 3/6] pager: introduce wait_for_pager
Date: Tue, 04 Jun 2024 09:29:30 -0700	[thread overview]
Message-ID: <xmqqo78gzn6d.fsf@gitster.g> (raw)
In-Reply-To: <3f085795-79bd-4a56-9df8-659e32179925@gmail.com> (Phillip Wood's message of "Tue, 4 Jun 2024 11:00:37 +0100")

Phillip Wood <phillip.wood123@gmail.com> writes:

>>   +void wait_for_pager(void)
>> +{
>> +	if (old_fd1 == -1)
>> +		return;
>
> Isn't it a bug to call this with old_fd1 == -1 or have I missed something?

Good point.

>> +	wait_for_pager_atexit();
>> +	unsetenv("GIT_PAGER_IN_USE");
>> +	dup2(old_fd1, 1);
>> +	old_fd1 = -1;
>> +	if (old_fd2 != -1) {
>> +		dup2(old_fd2, 2);
>> +		old_fd2 = -1;
>
> We're leaking old_fd1 and old_fd2 here. wait_for_pager_atexit()

Yeah, that needs fixing.

>> +	if (!once++) {
>
> We only need to increment "once" when we enter this block, not every
> time the code is run.

Running this 4 billion times and we'll be in a trouble ;-).

>> +		sigchain_push_common(wait_for_pager_signal);
>
> I think we should be calling this each time we setup the pager and pop
> it in wait_for_pager().

Good point.


  reply	other threads:[~2024-06-04 16:29 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-19  7:06 [PATCH 0/5] use the pager in 'add -p' Rubén Justo
2024-05-19  7:10 ` [PATCH 1/5] add-patch: test for 'p' command Rubén Justo
2024-05-19  7:12 ` [PATCH 2/5] pager: do not close fd 2 unnecessarily Rubén Justo
2024-05-20 19:14   ` Junio C Hamano
2024-05-20 22:33     ` Rubén Justo
2024-05-21 20:57       ` Junio C Hamano
2024-05-21 21:35         ` Rubén Justo
2024-05-21 22:00           ` Junio C Hamano
2024-05-22 17:19             ` Rubén Justo
2024-05-22 17:40               ` Junio C Hamano
2024-05-26  6:48                 ` Rubén Justo
2024-05-26 21:26                   ` Junio C Hamano
2024-05-19  7:13 ` [PATCH 3/5] pager: introduce wait_for_pager Rubén Justo
2024-05-19  7:14 ` [PATCH 4/5] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-05-19  7:14 ` [PATCH 5/5] add-patch: render hunks through the pager Rubén Justo
2024-05-20 19:30   ` Junio C Hamano
2024-05-20 19:45     ` Dragan Simic
2024-05-20 22:35       ` Rubén Justo
2024-05-20 23:54         ` Dragan Simic
2024-05-21 19:56           ` Rubén Justo
2024-05-21  7:07       ` Jeff King
2024-05-21 19:59         ` Rubén Justo
2024-05-23  9:06           ` Jeff King
2024-05-23 14:00             ` Junio C Hamano
2024-05-23 14:18               ` Dragan Simic
2024-05-23 23:04                 ` Junio C Hamano
2024-05-23 23:28                   ` Dragan Simic
2024-05-23 23:43                     ` Dragan Simic
2024-05-23 23:54                     ` Junio C Hamano
2024-05-23 23:57                       ` Dragan Simic
2024-05-25  4:54               ` Jeff King
2024-05-23 22:25             ` Rubén Justo
2024-05-23 23:03               ` Dragan Simic
2024-05-20 22:47     ` Rubén Justo
2024-05-20 23:18       ` Junio C Hamano
2024-05-20 23:27         ` Rubén Justo
2024-05-21 20:49 ` [PATCH v2 0/5] use the pager in 'add -p' Rubén Justo
2024-05-21 20:51   ` [PATCH v2 1/5] add-patch: test for 'p' command Rubén Justo
2024-05-21 20:52   ` [PATCH v2 2/5] pager: do not close fd 2 unnecessarily Rubén Justo
2024-05-21 20:52   ` [PATCH v2 3/5] pager: introduce wait_for_pager Rubén Justo
2024-05-21 20:52   ` [PATCH v2 4/5] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-05-21 20:52   ` [PATCH v2 5/5] add-patch: render hunks through the pager Rubén Justo
2024-05-22  8:09     ` Dragan Simic
2024-05-22 18:47       ` Junio C Hamano
2024-05-22 21:23       ` Rubén Justo
2024-05-22 21:27         ` Dragan Simic
2024-06-02 15:38   ` [PATCH v3 0/6] use the pager in 'add -p' Rubén Justo
2024-06-02 15:42     ` [PATCH v3 1/6] add-patch: test for 'p' command Rubén Justo
2024-06-02 15:42     ` [PATCH v3 2/6] pager: do not close fd 2 unnecessarily Rubén Justo
2024-06-02 15:43     ` [PATCH v3 3/6] pager: introduce wait_for_pager Rubén Justo
2024-06-02 15:43     ` [PATCH v3 4/6] pager: introduce setup_custom_pager Rubén Justo
2024-06-02 15:43     ` [PATCH v3 5/6] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-06-02 15:44     ` [PATCH v3 6/6] add-patch: introduce the command '|' Rubén Justo
2024-06-02 16:36     ` [PATCH v3 0/6] use the pager in 'add -p' Junio C Hamano
2024-06-02 17:11       ` Junio C Hamano
2024-06-02 17:33         ` Rubén Justo
2024-06-02 17:13       ` Rubén Justo
2024-06-02 17:46       ` Dragan Simic
2024-06-03  9:03         ` Junio C Hamano
2024-06-03 10:21           ` Dragan Simic
2024-06-03 15:28             ` Junio C Hamano
2024-06-04 17:34               ` Dragan Simic
2024-06-02 17:36     ` Dragan Simic
2024-06-03 16:01       ` Junio C Hamano
2024-06-04 17:41         ` Dragan Simic
2024-06-04 17:42           ` Dragan Simic
2024-06-03 20:19       ` Rubén Justo
2024-06-04 18:13         ` Dragan Simic
2024-06-03 20:35     ` [PATCH v4 " Rubén Justo
2024-06-03 20:38       ` [PATCH v4 1/6] add-patch: test for 'p' command Rubén Justo
2024-06-03 20:38       ` [PATCH v4 2/6] pager: do not close fd 2 unnecessarily Rubén Justo
2024-06-04 15:50         ` Junio C Hamano
2024-06-03 20:38       ` [PATCH v4 3/6] pager: introduce wait_for_pager Rubén Justo
2024-06-04 10:00         ` Phillip Wood
2024-06-04 16:29           ` Junio C Hamano [this message]
2024-06-05 22:03           ` Rubén Justo
2024-06-04 16:25         ` Junio C Hamano
2024-06-03 20:38       ` [PATCH v4 4/6] pager: introduce setup_custom_pager Rubén Justo
2024-06-04 16:43         ` Junio C Hamano
2024-06-03 20:38       ` [PATCH v4 5/6] test-terminal: introduce --no-stdin-pty Rubén Justo
2024-06-04 10:05         ` Phillip Wood
2024-06-04 10:33           ` Jeff King
2024-06-05 15:39             ` Junio C Hamano
2024-06-06  8:24               ` Jeff King
2024-06-05 22:50           ` Rubén Justo
2024-06-06  8:27             ` Jeff King
2024-06-09  7:26               ` Rubén Justo
2024-06-03 20:38       ` [PATCH v4 6/6] add-patch: introduce the command '|' Rubén Justo
2024-06-04 17:12         ` Junio C Hamano
2024-06-04 20:05           ` Dragan Simic
2024-06-05  5:16           ` Junio C Hamano
2024-06-04 10:17     ` [PATCH v3 0/6] use the pager in 'add -p' Jeff King
2024-06-04 15:32       ` Junio C Hamano
2024-06-05  9:09         ` Jeff King
2024-06-05 13:21           ` Phillip Wood
2024-06-08  5:54             ` Dragan Simic
2024-06-09  7:44               ` Rubén Justo
2024-06-09  7:57                 ` Dragan Simic
2024-06-10 19:09                   ` Rubén Justo
2024-06-10 21:02                     ` Dragan Simic
2024-06-10 14:09                 ` Phillip Wood
2024-06-10 16:13                   ` Junio C Hamano
2024-06-10 19:14                   ` Rubén Justo
2024-06-10 19:56                     ` Junio C Hamano
2024-06-10 21:08                     ` Dragan Simic
2024-06-10 19:28                   ` Dragan Simic
2024-06-10 20:08                     ` Junio C Hamano
2024-06-10 21:16                       ` Dragan Simic
2024-06-09 14:29               ` phillip.wood123
2024-06-09 17:20                 ` Dragan Simic
2024-06-10  8:27                   ` Phillip Wood
2024-06-10  9:09                     ` Dragan Simic
2024-06-05 17:24           ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqo78gzn6d.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=dsimic@manjaro.org \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=phillip.wood123@gmail.com \
    --cc=rjusto@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.