diff options
author | Joachim Schmitz <jojo@schmitz-digital.de> | 2012-09-08 18:54:34 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-08 20:35:19 -0700 |
commit | 7f9e848cf82311792ccfb286e64846fe6f3d5476 (patch) | |
tree | a1136b10618acd9336dcfe4025b01ad826f1fa11 | |
parent | Merge branch 'maint-1.7.11' into maint (diff) | |
download | tgif-7f9e848cf82311792ccfb286e64846fe6f3d5476.tar.xz |
Add a no-op setitimer() wrapper
The current code uses setitimer() only for reducing perceived
latency. On platforms that lack setitimer() (e.g. HP NonStop),
allow builders to say "make NO_SETITIMER=YesPlease" to use a no-op
substitute, as doing so would not affect correctness.
HP NonStop does provide struct itimerval, but other platforms may
not, so this is taken care of in this commit too, by setting
NO_STRUCT_ITIMERVAL.
Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | Makefile | 12 | ||||
-rw-r--r-- | git-compat-util.h | 11 |
2 files changed, 23 insertions, 0 deletions
@@ -157,6 +157,11 @@ all:: # Define NO_PREAD if you have a problem with pread() system call (e.g. # cygwin1.dll before v1.5.22). # +# Define NO_SETITIMER if you don't have setitimer() +# +# Define NO_STRUCT_ITIMERVAL if you don't have struct itimerval +# This also implies NO_SETITIMER +# # Define NO_THREAD_SAFE_PREAD if your pread() implementation is not # thread-safe. (e.g. compat/pread.c or cygwin) # @@ -1670,6 +1675,13 @@ endif ifdef OBJECT_CREATION_USES_RENAMES COMPAT_CFLAGS += -DOBJECT_CREATION_MODE=1 endif +ifdef NO_STRUCT_ITIMERVAL + COMPAT_CFLAGS += -DNO_STRUCT_ITIMERVAL + NO_SETITIMER=YesPlease +endif +ifdef NO_SETITIMER + COMPAT_CFLAGS += -DNO_SETITIMER +endif ifdef NO_PREAD COMPAT_CFLAGS += -DNO_PREAD COMPAT_OBJS += compat/pread.o diff --git a/git-compat-util.h b/git-compat-util.h index 35b095e8ae..3515366b12 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -162,6 +162,17 @@ #define probe_utf8_pathname_composition(a,b) #endif +#ifdef NO_STRUCT_ITIMERVAL +struct itimerval { + struct timeval it_interval; + struct timeval it_value; +} +#endif + +#ifdef NO_SETITIMER +#define setitimer(which,value,ovalue) +#endif + #ifndef NO_LIBGEN_H #include <libgen.h> #else |