diff options
author | Craig Tiller <ctiller@google.com> | 2015-02-02 14:43:23 -0800 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-02-02 14:43:23 -0800 |
commit | e863e1b855dcb4d1d156d3fa3d74467cedf3eb8f (patch) | |
tree | 2e0026e16c8790b9cef98fdf3592c3e4d07b22bd /src/core/iomgr | |
parent | a7170ac4ad04591a5db33d5271ef6ce30662e9fd (diff) | |
parent | c10f5c97806f84f8805d236cd280f8ff3b26b574 (diff) |
Merge github.com:google/grpc into async-api
Diffstat (limited to 'src/core/iomgr')
-rw-r--r-- | src/core/iomgr/pollset_kick.c | 1 | ||||
-rw-r--r-- | src/core/iomgr/wakeup_fd_nospecial.c | 9 | ||||
-rw-r--r-- | src/core/iomgr/wakeup_fd_pipe.c | 8 | ||||
-rw-r--r-- | src/core/iomgr/wakeup_fd_pipe.h | 2 | ||||
-rw-r--r-- | src/core/iomgr/wakeup_fd_posix.c | 14 | ||||
-rw-r--r-- | src/core/iomgr/wakeup_fd_posix.h | 31 |
6 files changed, 37 insertions, 28 deletions
diff --git a/src/core/iomgr/pollset_kick.c b/src/core/iomgr/pollset_kick.c index 42b110d124..238ec75c61 100644 --- a/src/core/iomgr/pollset_kick.c +++ b/src/core/iomgr/pollset_kick.c @@ -138,6 +138,7 @@ void grpc_pollset_kick_kick(grpc_pollset_kick_state *kick_state) { } void grpc_pollset_kick_global_init_fallback_fd(void) { + gpr_mu_init(&fd_freelist_mu); grpc_wakeup_fd_global_init_force_fallback(); } diff --git a/src/core/iomgr/wakeup_fd_nospecial.c b/src/core/iomgr/wakeup_fd_nospecial.c index 21e8074d50..c1038bf379 100644 --- a/src/core/iomgr/wakeup_fd_nospecial.c +++ b/src/core/iomgr/wakeup_fd_nospecial.c @@ -38,16 +38,17 @@ #include <grpc/support/port_platform.h> -#ifndef GPR_POSIX_HAS_SPECIAL_WAKEUP_FD +#ifdef GPR_POSIX_NO_SPECIAL_WAKEUP_FD -#include "src/core/iomgr/wakeup_fd.h" +#include "src/core/iomgr/wakeup_fd_posix.h" +#include <stddef.h> static int check_availability_invalid(void) { return 0; } -const grpc_wakeup_fd_vtable specialized_wakeup_fd_vtable = { +const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable = { NULL, NULL, NULL, NULL, check_availability_invalid }; -#endif /* GPR_POSIX_HAS_SPECIAL_WAKEUP */ +#endif /* GPR_POSIX_NO_SPECIAL_WAKEUP_FD */ diff --git a/src/core/iomgr/wakeup_fd_pipe.c b/src/core/iomgr/wakeup_fd_pipe.c index f36e6eeb9f..f895478990 100644 --- a/src/core/iomgr/wakeup_fd_pipe.c +++ b/src/core/iomgr/wakeup_fd_pipe.c @@ -31,7 +31,10 @@ * */ -/* TODO(klempner): Allow this code to be disabled. */ +#include <grpc/support/port_platform.h> + +#ifdef GPR_POSIX_WAKEUP_FD + #include "src/core/iomgr/wakeup_fd_posix.h" #include <errno.h> @@ -87,7 +90,8 @@ static int pipe_check_availability(void) { return 1; } -const grpc_wakeup_fd_vtable pipe_wakeup_fd_vtable = { +const grpc_wakeup_fd_vtable grpc_pipe_wakeup_fd_vtable = { pipe_create, pipe_consume, pipe_wakeup, pipe_destroy, pipe_check_availability }; +#endif /* GPR_POSIX_WAKUP_FD */ diff --git a/src/core/iomgr/wakeup_fd_pipe.h b/src/core/iomgr/wakeup_fd_pipe.h index fc2898f570..a2fcde5b55 100644 --- a/src/core/iomgr/wakeup_fd_pipe.h +++ b/src/core/iomgr/wakeup_fd_pipe.h @@ -36,6 +36,6 @@ #include "src/core/iomgr/wakeup_fd_posix.h" -extern grpc_wakeup_fd_vtable pipe_wakeup_fd_vtable; +extern grpc_wakeup_fd_vtable grpc_pipe_wakeup_fd_vtable; #endif /* __GRPC_INTERNAL_IOMGR_WAKEUP_FD_PIPE_H_ */ diff --git a/src/core/iomgr/wakeup_fd_posix.c b/src/core/iomgr/wakeup_fd_posix.c index 9107cf37b1..d3cc3ec570 100644 --- a/src/core/iomgr/wakeup_fd_posix.c +++ b/src/core/iomgr/wakeup_fd_posix.c @@ -31,6 +31,10 @@ * */ +#include <grpc/support/port_platform.h> + +#ifdef GPR_POSIX_WAKEUP_FD + #include "src/core/iomgr/wakeup_fd_posix.h" #include "src/core/iomgr/wakeup_fd_pipe.h" #include <stddef.h> @@ -38,15 +42,15 @@ static const grpc_wakeup_fd_vtable *wakeup_fd_vtable = NULL; void grpc_wakeup_fd_global_init(void) { - if (specialized_wakeup_fd_vtable.check_availability()) { - wakeup_fd_vtable = &specialized_wakeup_fd_vtable; + if (grpc_specialized_wakeup_fd_vtable.check_availability()) { + wakeup_fd_vtable = &grpc_specialized_wakeup_fd_vtable; } else { - wakeup_fd_vtable = &pipe_wakeup_fd_vtable; + wakeup_fd_vtable = &grpc_pipe_wakeup_fd_vtable; } } void grpc_wakeup_fd_global_init_force_fallback(void) { - wakeup_fd_vtable = &pipe_wakeup_fd_vtable; + wakeup_fd_vtable = &grpc_pipe_wakeup_fd_vtable; } void grpc_wakeup_fd_global_destroy(void) { @@ -68,3 +72,5 @@ void grpc_wakeup_fd_wakeup(grpc_wakeup_fd_info *fd_info) { void grpc_wakeup_fd_destroy(grpc_wakeup_fd_info *fd_info) { wakeup_fd_vtable->destroy(fd_info); } + +#endif /* GPR_POSIX_WAKEUP_FD */ diff --git a/src/core/iomgr/wakeup_fd_posix.h b/src/core/iomgr/wakeup_fd_posix.h index c2769afb2a..75bb9fc766 100644 --- a/src/core/iomgr/wakeup_fd_posix.h +++ b/src/core/iomgr/wakeup_fd_posix.h @@ -62,29 +62,14 @@ #ifndef __GRPC_INTERNAL_IOMGR_WAKEUP_FD_POSIX_H_ #define __GRPC_INTERNAL_IOMGR_WAKEUP_FD_POSIX_H_ -typedef struct grpc_wakeup_fd_info grpc_wakeup_fd_info; - void grpc_wakeup_fd_global_init(void); void grpc_wakeup_fd_global_destroy(void); - -void grpc_wakeup_fd_create(grpc_wakeup_fd_info *fd_info); -void grpc_wakeup_fd_consume_wakeup(grpc_wakeup_fd_info *fd_info); -void grpc_wakeup_fd_wakeup(grpc_wakeup_fd_info *fd_info); -void grpc_wakeup_fd_destroy(grpc_wakeup_fd_info *fd_info); - -#define GRPC_WAKEUP_FD_GET_READ_FD(fd_info) ((fd_info)->read_fd) - /* Force using the fallback implementation. This is intended for testing * purposes only.*/ void grpc_wakeup_fd_global_init_force_fallback(void); -/* Private structures; don't access their fields directly outside of wakeup fd - * code. */ -struct grpc_wakeup_fd_info { - int read_fd; - int write_fd; -}; +typedef struct grpc_wakeup_fd_info grpc_wakeup_fd_info; typedef struct grpc_wakeup_fd_vtable { void (*create)(grpc_wakeup_fd_info *fd_info); @@ -95,8 +80,20 @@ typedef struct grpc_wakeup_fd_vtable { int (*check_availability)(void); } grpc_wakeup_fd_vtable; +struct grpc_wakeup_fd_info { + int read_fd; + int write_fd; +}; + +#define GRPC_WAKEUP_FD_GET_READ_FD(fd_info) ((fd_info)->read_fd) + +void grpc_wakeup_fd_create(grpc_wakeup_fd_info *fd_info); +void grpc_wakeup_fd_consume_wakeup(grpc_wakeup_fd_info *fd_info); +void grpc_wakeup_fd_wakeup(grpc_wakeup_fd_info *fd_info); +void grpc_wakeup_fd_destroy(grpc_wakeup_fd_info *fd_info); + /* Defined in some specialized implementation's .c file, or by * wakeup_fd_nospecial.c if no such implementation exists. */ -extern const grpc_wakeup_fd_vtable specialized_wakeup_fd_vtable; +extern const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable; #endif /* __GRPC_INTERNAL_IOMGR_WAKEUP_FD_POSIX_H_ */ |