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

Re: [PATCH 1/2] Support for setitimer() on platforms lacking it

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 3, 2012, 19:03 UTC
Message-ID
<7v1uijexor.fsf@alter.siamese.dyndns.org>
In-Reply-To
<000d01cd89b6$d5ba6c30$812f4490$@schmitz-digital.de>
"Joachim Schmitz" <jojo@schmitz-digital.de> writes:
Show 16 quoted lines
>> > 	if (!value ) {
>> 
>> Style: space before ')'?
>
> Will fix.
>  
>> > 		errno = EFAULT;
>> > 		return -1;
>> 
>> EFAULT is good ;-)
>
> That's what 'man setitimer()' on Linux says to happen if invalid value is found.
>  
>> The emulation in mingw.c 6072fc3 (Windows: Implement setitimer() and
>> sigaction()., 2007-11-13) may want to be tightened in a similar way.
>
Show 8 quoted lines
> Hmm, I see that there the errors are handled differently, like this:
>
>         if (ovalue != NULL)
>                 return errno = EINVAL,
>                         error("setitimer param 3 != NULL not implemented");
>
> Should this be done in my setitimer() too? Or rather be left to the caller?
> I tend to the later.

I don't care too deeply either way. The above was not a comment meant for you, but was to point out the error checking when the newvalue is NULL---it is missing in mingw.c and I think the condition should be checked.

> On top here SA_RESTART is used, which is not available in HP
> NonStop (so I have a "-DSA_RESTART=0" in COMPAT_CFLAGS).

If you cannot re-trigger the timer, then you will see "20%" shown after one second, silence for 4 seconds and then "done", for an operation that takes 5 seconds. Which is not the end of the world, though. It does not affect correctness.

The other use of itimer in our codebase is the early-output timer, but that also is about perceived latency, and not about correctness, so it is possible that you do not have to support anything (i.e. not even setting an alarm) at all.

Previous: Junio C HamanoNext: Joachim Schmitz
Message 11 of 20 in “Support for setitimer() on platforms lacking it”
  1. 1/2 Support for setitimer() on platforms lacking itJoachim Schmitz, Aug 24, 2012
  2. Junio C HamanoAug 28, 2012
  3. Joachim SchmitzAug 30, 2012
  4. Junio C HamanoAug 30, 2012
  5. Joachim SchmitzAug 30, 2012
  6. Joachim SchmitzSep 1, 2012
  7. Junio C HamanoSep 2, 2012
  8. Joachim SchmitzSep 3, 2012
  9. Johannes SixtSep 3, 2012
  10. Junio C HamanoSep 3, 2012
  11. Junio C HamanoSep 3, 2012
  12. Joachim SchmitzSep 3, 2012
  13. Junio C HamanoSep 4, 2012
  14. Joachim SchmitzSep 4, 2012
  15. Junio C HamanoSep 4, 2012
  16. Junio C HamanoSep 4, 2012
  17. Joachim SchmitzSep 4, 2012
  18. Junio C HamanoSep 4, 2012
  19. Joachim SchmitzSep 5, 2012
  20. Johannes SixtSep 4, 2012

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.