Proxy for @ghemawat: Removed an unnecessary error allocation from chttp2 code.

pull/7676/head
Vijay Pai 8 years ago
parent 50be893eba
commit 2d33d78ac5
  1. 16
      src/core/ext/transport/chttp2/transport/chttp2_transport.c

@ -94,7 +94,8 @@ static void initiate_writing(grpc_exec_ctx *exec_ctx, void *t,
static void start_writing(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t); static void start_writing(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t);
static void end_waiting_for_write(grpc_exec_ctx *exec_ctx, static void end_waiting_for_write(grpc_exec_ctx *exec_ctx,
grpc_chttp2_transport *t, grpc_error *error); grpc_chttp2_transport *t, grpc_error *error,
const char *reason);
/** Set a transport level setting, and push it to our peer */ /** Set a transport level setting, and push it to our peer */
static void push_setting(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, static void push_setting(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
@ -876,7 +877,7 @@ static void start_writing(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t) {
set_write_state(t, GRPC_CHTTP2_WRITING_INACTIVE, set_write_state(t, GRPC_CHTTP2_WRITING_INACTIVE,
"start_writing:nothing_to_write"); "start_writing:nothing_to_write");
} }
end_waiting_for_write(exec_ctx, t, GRPC_ERROR_CREATE("Nothing to write")); end_waiting_for_write(exec_ctx, t, GRPC_ERROR_NONE, "Nothing to write");
if (t->ep && !t->endpoint_reading) { if (t->ep && !t->endpoint_reading) {
destroy_endpoint(exec_ctx, t); destroy_endpoint(exec_ctx, t);
} }
@ -925,11 +926,18 @@ static void push_setting(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
} }
} }
/* error may be GRPC_ERROR_NONE if there is no error allocated yet.
In that case, use "reason" as the text for a new error. */
static void end_waiting_for_write(grpc_exec_ctx *exec_ctx, static void end_waiting_for_write(grpc_exec_ctx *exec_ctx,
grpc_chttp2_transport *t, grpc_error *error) { grpc_chttp2_transport *t, grpc_error *error,
const char *reason) {
grpc_chttp2_stream_global *stream_global; grpc_chttp2_stream_global *stream_global;
while (grpc_chttp2_list_pop_closed_waiting_for_writing(&t->global, while (grpc_chttp2_list_pop_closed_waiting_for_writing(&t->global,
&stream_global)) { &stream_global)) {
if (error == GRPC_ERROR_NONE && reason != NULL) {
/* create error object. */
error = GRPC_ERROR_CREATE(reason);
}
fail_pending_writes(exec_ctx, &t->global, stream_global, fail_pending_writes(exec_ctx, &t->global, stream_global,
GRPC_ERROR_REF(error)); GRPC_ERROR_REF(error));
GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream_global, "finish_writes"); GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream_global, "finish_writes");
@ -951,7 +959,7 @@ static void terminate_writing_with_lock(grpc_exec_ctx *exec_ctx,
grpc_chttp2_cleanup_writing(exec_ctx, &t->global, &t->writing); grpc_chttp2_cleanup_writing(exec_ctx, &t->global, &t->writing);
end_waiting_for_write(exec_ctx, t, error); end_waiting_for_write(exec_ctx, t, error, NULL);
switch (t->executor.write_state) { switch (t->executor.write_state) {
case GRPC_CHTTP2_WRITING_INACTIVE: case GRPC_CHTTP2_WRITING_INACTIVE:

Loading…
Cancel
Save