git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/5] progress.c: replace signal() with sigaction()

From
Junio C Hamano <gitster@pobox.com>
Date
May 28, 2014, 17:35 UTC
Message-ID
<xmqqvbspdcwl.fsf@gitster.dls.corp.google.com>
In-Reply-To
<87sinuiad2.fsf@fencepost.gnu.org>
David Kastrup <dak@gnu.org> writes:
Show 21 quoted lines
>>> diff --git a/progress.c b/progress.c
>>> index 261314e..24df263 100644
>>> --- a/progress.c
>>> +++ b/progress.c
>>> @@ -66,8 +66,12 @@ static void set_progress_signal(void)
>>>  static void clear_progress_signal(void)
>>>  {
>>>  	struct itimerval v = {{0,},};
>>> +	struct sigaction sa;
>>> +
>>> +	memset(&sa, 0, sizeof(sa));
>>> +	sa.sa_handler = SIG_IGN;
>>
>> A C99 initialiser here would save the call to memset. Unfortunately
>> Documentation/CodingGuidelines is fairly clear on not using C99
>> initialisers, given the fact we're now at git 2.0 maybe it's time to
>> revisit this policy?
>
> If I look at the initialization of v in the context immediately above
> the new code, it would appear that somebody already revisited this
> policy.

The existing structure initialization that says "the first field of the structure is set to 0" implying "everything else will also be set to 0" is not what we avoid. That is straight C89.

What we avoid is an initializer with a designator, e.g.
	struct sigaction sa = {
        	.sa_handler = NULL,
                .sa_flags = 0,
	};
Previous: David KastrupNext: Jeremiah Mahler
Message 7 of 16 in “replace signal() with sigaction()”
  1. 0/5 replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  2. 1/5 progress.c: replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  3. Chris PackhamMay 28, 2014
  4. David KastrupMay 28, 2014
  5. Erik Faye-LundMay 28, 2014
  6. David KastrupMay 28, 2014
  7. Junio C HamanoMay 28, 2014
  8. Jeremiah MahlerMay 28, 2014
  9. 2/5 daemon.c run_service(): replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  10. 3/5 daemon.c child_handler(): replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  11. 4/5 daemon.c service_loop(): replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  12. 5/5 connect.c: replace signal() with sigaction()Jeremiah Mahler, May 28, 2014
  13. Johannes SixtMay 28, 2014
  14. Chris PackhamMay 28, 2014
  15. Erik Faye-LundMay 28, 2014
  16. Jeremiah MahlerMay 28, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.