2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

socket-util: Move get_max_fds() to process.c.

get_max_fds() is used only from process.c. Move it there
along with rlim_is_finite(). Since process_start() can only
be called before any additional threads are created, we
no longer need the thread safety checks in get_max_fds().

Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Gurucharan Shetty
2014-02-21 08:46:31 -08:00
parent 7ff04d9244
commit 4f57ad100f
3 changed files with 43 additions and 45 deletions

View File

@@ -122,49 +122,6 @@ set_dscp(int fd, uint8_t dscp)
return 0;
}
static bool
rlim_is_finite(rlim_t limit)
{
if (limit == RLIM_INFINITY) {
return false;
}
#ifdef RLIM_SAVED_CUR /* FreeBSD 8.0 lacks RLIM_SAVED_CUR. */
if (limit == RLIM_SAVED_CUR) {
return false;
}
#endif
#ifdef RLIM_SAVED_MAX /* FreeBSD 8.0 lacks RLIM_SAVED_MAX. */
if (limit == RLIM_SAVED_MAX) {
return false;
}
#endif
return true;
}
/* Returns the maximum valid FD value, plus 1. */
int
get_max_fds(void)
{
static struct ovsthread_once once = OVSTHREAD_ONCE_INITIALIZER;
static int max_fds;
if (ovsthread_once_start(&once)) {
struct rlimit r;
if (!getrlimit(RLIMIT_NOFILE, &r) && rlim_is_finite(r.rlim_cur)) {
max_fds = r.rlim_cur;
} else {
VLOG_WARN("failed to obtain fd limit, defaulting to 1024");
max_fds = 1024;
}
ovsthread_once_done(&once);
}
return max_fds;
}
/* Translates 'host_name', which must be a string representation of an IP
* address, into a numeric IP address in '*addr'. Returns 0 if successful,
* otherwise a positive errno value. */