diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2019-07-22 16:30:40 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-08-02 21:51:48 +0000 |
commit | 46eb1950a13b7b01afcc83cb3d8ce59012dfee46 (patch) | |
tree | be04cd1fec77198307fc18e6ead75e63fea496ef /src/plugins/quic | |
parent | be0ffbc70a1acdaf616d437f83ae2df7801775e8 (diff) |
quic: Improve quic echo connect threading
Type: fix
Change-Id: I64f90139ad70e722f1ecbc4e0c6c1e723ec0f054
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/plugins/quic')
-rw-r--r-- | src/plugins/quic/quic.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/plugins/quic/quic.c b/src/plugins/quic/quic.c index af482d9dd36..43ac87990da 100644 --- a/src/plugins/quic/quic.c +++ b/src/plugins/quic/quic.c @@ -44,7 +44,7 @@ quic_ctx_alloc (u32 thread_index) memset (ctx, 0, sizeof (quic_ctx_t)); ctx->c_thread_index = thread_index; - QUIC_DBG (1, "Allocated quic_ctx %u on thread %u", + QUIC_DBG (3, "Allocated quic_ctx %u on thread %u", ctx - qm->ctx_pool[thread_index], thread_index); return ctx - qm->ctx_pool[thread_index]; } @@ -634,8 +634,7 @@ quic_accept_stream (void *s) SVM_FIFO_WANT_DEQ_NOTIF_IF_FULL | SVM_FIFO_WANT_DEQ_NOTIF_IF_EMPTY); - rv = app_worker_accept_notify (app_wrk, stream_session); - if (rv) + if ((rv = app_worker_accept_notify (app_wrk, stream_session))) { QUIC_DBG (1, "failed to notify accept worker app"); session_free_w_fifos (stream_session); @@ -1130,6 +1129,7 @@ quic_proto_on_close (u32 ctx_index, u32 thread_index) quicly_stream_t *stream = ctx->stream; quicly_reset_stream (stream, QUIC_APP_ERROR_CLOSE_NOTIFY); quic_send_packets (ctx); + return; } switch (ctx->conn_state) @@ -1355,6 +1355,7 @@ quic_on_client_connected (quic_ctx_t * ctx) app_worker_t *app_wrk; u32 ctx_id = ctx->c_c_index; u32 thread_index = ctx->c_thread_index; + int rv; app_wrk = app_worker_get_if_valid (ctx->parent_app_wrk_id); if (!app_wrk) @@ -1381,9 +1382,10 @@ quic_on_client_connected (quic_ctx_t * ctx) } quic_session->session_state = SESSION_STATE_CONNECTING; - if (app_worker_connect_notify (app_wrk, quic_session, ctx->client_opaque)) + if ((rv = app_worker_connect_notify (app_wrk, quic_session, + ctx->client_opaque))) { - QUIC_DBG (1, "failed to notify app"); + QUIC_DBG (1, "failed to notify app %d", rv); quic_proto_on_close (ctx_id, thread_index); return -1; } @@ -1824,8 +1826,7 @@ quic_create_quic_session (quic_ctx_t * ctx) return rv; } app_wrk = app_worker_get (quic_session->app_wrk_index); - rv = app_worker_accept_notify (app_wrk, quic_session); - if (rv) + if ((rv = app_worker_accept_notify (app_wrk, quic_session))) { QUIC_DBG (1, "failed to notify accept worker app"); return rv; |