Browse Source

libuv: disable process affinity during CMake bootstrap

Avoid depending on platform-specific pthread features during bootstrap.
pull/320/head
Brad King 8 years ago
parent
commit
c5428d8db2
  1. 10
      Utilities/cmlibuv/src/unix/process.c

10
Utilities/cmlibuv/src/unix/process.c

@ -45,6 +45,7 @@ extern char **environ;
# include <grp.h>
#endif
#ifndef CMAKE_BOOTSTRAP
#if defined(__linux__)
# define uv__cpu_set_t cpu_set_t
#elif defined(__FreeBSD__)
@ -53,6 +54,7 @@ extern char **environ;
# include <pthread_np.h>
# define uv__cpu_set_t cpuset_t
#endif
#endif
static void uv__chld(uv_signal_t* handle, int signum) {
uv_process_t* process;
@ -294,11 +296,13 @@ static void uv__process_child_init(const uv_process_options_t* options,
int err;
int fd;
int n;
#ifndef CMAKE_BOOTSTRAP
#if defined(__linux__) || defined(__FreeBSD__)
int r;
int i;
int cpumask_size;
uv__cpu_set_t cpuset;
#endif
#endif
if (options->flags & UV_PROCESS_DETACHED)
@ -390,6 +394,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
_exit(127);
}
#ifndef CMAKE_BOOTSTRAP
#if defined(__linux__) || defined(__FreeBSD__)
if (options->cpumask != NULL) {
cpumask_size = uv_cpumask_size();
@ -408,6 +413,7 @@ static void uv__process_child_init(const uv_process_options_t* options,
_exit(127);
}
}
#endif
#endif
if (options->env != NULL) {
@ -465,10 +471,14 @@ int uv_spawn(uv_loop_t* loop,
int status;
if (options->cpumask != NULL) {
#ifndef CMAKE_BOOTSTRAP
#if defined(__linux__) || defined(__FreeBSD__)
if (options->cpumask_size < (size_t)uv_cpumask_size()) {
return UV_EINVAL;
}
#else
return UV_ENOTSUP;
#endif
#else
return UV_ENOTSUP;
#endif

Loading…
Cancel
Save