Re: [PATCH] move sleep_millisec to git-compat-util.h
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 25, 2020, 03:12 UTC
- Message-ID
- <xmqqy2iqf7uf.fsf@gitster.c.googlers.com>
- In-Reply-To
- <011801d6c2ae$dcdbaad0$96930070$@nexbridge.com>
"Randall S. Becker" <rsbecker@nexbridge.com> writes:
Show 6 quoted lines
> I have a platform fix that I'd like to apply once this makes it into the > main code. The sleep_millisec uses poll(), which is rather heavy-weight on > the NonStop platform. We have a much more efficient sleep function available > (with microsecond resolution), which would be more useful unless there is a > poll side-effect on which git depends. Would this be acceptable? I could > push this at any time really.
We strongly prefer not to contaminate generic part of source with platform specific conditional compilation.
If this were a much larger helper function, it might make sense to perform the compat/*.c dance, but in this case:
* [PATCH 1/2] that implements sleep_millisec() in git-compat-util.h as a static inline function; and then
* [PATCH 2/2] that does the equivalent of your patch below, but in git-compat-util.h
might be the cleanest.
Show 29 quoted lines
> index bcda41e374..972ecd67bf 100644
> --- a/wrapper.c
> +++ b/wrapper.c
> @@ -4,6 +4,10 @@
> #include "cache.h"
> #include "config.h"
>
> +#ifdef __TANDEM
> +#include <cextdecs> /* for PROCESS_DELAY_ */
> +#endif
> +
> static int memory_limit_check(size_t size, int gentle)
> {
> static size_t limit = 0;
> @@ -650,7 +654,11 @@ void write_file(const char *path, const char *fmt, ...)
>
> void sleep_millisec(int millisec)
> {
> +#ifdef __TANDEM
> + PROCESS_DELAY_(millisec * 1000LL);
> +#else
> poll(NULL, 0, millisec);
> +#endif
> }
>
> int xgethostname(char *buf, size_t len)
>
> Regards,
> Randall