Signed-off-by: Stefan Beller <[email protected]>
---
git-compat-util.h | 1 +
sha1_file.c | 41 -----------------------------------------
wrapper.c | 41 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 41 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index bc8fc8c..2c55ca7 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -675,6 +675,7 @@ extern int xmkstemp_mode(char *template, int mode);
extern int odb_mkstemp(char *template, size_t limit, const char *pattern);
extern int odb_pack_keep(char *name, size_t namesz, const unsigned char *sha1);
extern char *xgetcwd(void);
+extern unsigned int get_max_fd_limit(void);
#define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x)))
diff --git a/sha1_file.c b/sha1_file.c
index 88f06ba..1f2519c 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -870,47 +870,6 @@ void free_pack_by_name(const char *pack_name)
}
}
-static unsigned int get_max_fd_limit(void)
-{
-#ifdef RLIMIT_NOFILE
- {
- struct rlimit lim;
-
- if (!getrlimit(RLIMIT_NOFILE, &lim))
- return lim.rlim_cur;
- }
-#endif
-
-#ifdef _SC_OPEN_MAX
- {
- long open_max = sysconf(_SC_OPEN_MAX);
- if (0 < open_max)
- return open_max;
- /*
- * Otherwise, we got -1 for one of the two
- * reasons:
- *
- * (1) sysconf() did not understand _SC_OPEN_MAX
- * and signaled an error with -1; or
- * (2) sysconf() said there is no limit.
- *
- * We _could_ clear errno before calling sysconf() to
- * tell these two cases apart and return a huge number
- * in the latter case to let the caller cap it to a
- * value that is not so selfish, but letting the
- * fallback OPEN_MAX codepath take care of these cases
- * is a lot simpler.
- */
- }
-#endif
-
-#ifdef OPEN_MAX
- return OPEN_MAX;
-#else
- return 1; /* see the caller ;-) */
-#endif
-}
-
/*
* Do not call this directly as this leaks p->pack_fd on error return;
* call open_packed_git() instead.
diff --git a/wrapper.c b/wrapper.c
index d5a6cef..493bf6f 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -303,6 +303,47 @@ ssize_t pread_in_full(int fd, void *buf, size_t count,
off_t offset)
return total;
}
+unsigned int get_max_fd_limit(void)
+{
+#ifdef RLIMIT_NOFILE
+ {
+ struct rlimit lim;
+
+ if (!getrlimit(RLIMIT_NOFILE, &lim))
+ return lim.rlim_cur;
+ }
+#endif
+
+#ifdef _SC_OPEN_MAX
+ {
+ long open_max = sysconf(_SC_OPEN_MAX);
+ if (0 < open_max)
+ return open_max;
+ /*
+ * Otherwise, we got -1 for one of the two
+ * reasons:
+ *
+ * (1) sysconf() did not understand _SC_OPEN_MAX
+ * and signaled an error with -1; or
+ * (2) sysconf() said there is no limit.
+ *
+ * We _could_ clear errno before calling sysconf() to
+ * tell these two cases apart and return a huge number
+ * in the latter case to let the caller cap it to a
+ * value that is not so selfish, but letting the
+ * fallback OPEN_MAX codepath take care of these cases
+ * is a lot simpler.
+ */
+ }
+#endif
+
+#ifdef OPEN_MAX
+ return OPEN_MAX;
+#else
+ return 1; /* see the caller ;-) */
+#endif
+}
+
int xdup(int fd)
{
int ret = dup(fd);
--
2.3.0.81.gc37f363
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html