|
|
|
@ -381,16 +381,18 @@ error: |
|
|
|
|
/* event manager callback when reads are ready */ |
|
|
|
|
static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *err) { |
|
|
|
|
grpc_tcp_listener *sp = arg; |
|
|
|
|
grpc_tcp_server_acceptor acceptor = {sp->server, sp->port_index, |
|
|
|
|
sp->fd_index}; |
|
|
|
|
grpc_pollset *read_notifier_pollset = NULL; |
|
|
|
|
grpc_fd *fdobj; |
|
|
|
|
|
|
|
|
|
if (err != GRPC_ERROR_NONE) { |
|
|
|
|
goto error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
read_notifier_pollset = |
|
|
|
|
// Create acceptor.
|
|
|
|
|
grpc_tcp_server_acceptor *acceptor = gpr_malloc(sizeof(*acceptor)); |
|
|
|
|
acceptor->from_server = sp->server; |
|
|
|
|
acceptor->port_index = sp->port_index; |
|
|
|
|
acceptor->fd_index = sp->fd_index; |
|
|
|
|
|
|
|
|
|
grpc_pollset *read_notifier_pollset = |
|
|
|
|
sp->server->pollsets[(size_t)gpr_atm_no_barrier_fetch_add( |
|
|
|
|
&sp->server->next_pollset_to_assign, 1) % |
|
|
|
|
sp->server->pollset_count]; |
|
|
|
@ -426,7 +428,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *err) { |
|
|
|
|
gpr_log(GPR_DEBUG, "SERVER_CONNECT: incoming connection: %s", addr_str); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fdobj = grpc_fd_create(fd, name); |
|
|
|
|
grpc_fd *fdobj = grpc_fd_create(fd, name); |
|
|
|
|
|
|
|
|
|
if (read_notifier_pollset == NULL) { |
|
|
|
|
gpr_log(GPR_ERROR, "Read notifier pollset is not set on the fd"); |
|
|
|
@ -439,7 +441,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *err) { |
|
|
|
|
exec_ctx, sp->server->on_accept_cb_arg, |
|
|
|
|
grpc_tcp_create(fdobj, sp->server->resource_quota, |
|
|
|
|
GRPC_TCP_DEFAULT_READ_SLICE_SIZE, addr_str), |
|
|
|
|
read_notifier_pollset, &acceptor); |
|
|
|
|
read_notifier_pollset, acceptor); |
|
|
|
|
|
|
|
|
|
gpr_free(name); |
|
|
|
|
gpr_free(addr_str); |
|
|
|
|