diff options
Diffstat (limited to 'ecp')
-rw-r--r-- | ecp/src/ecp/vconn/vconn.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ecp/src/ecp/vconn/vconn.c b/ecp/src/ecp/vconn/vconn.c index 39da365..337c693 100644 --- a/ecp/src/ecp/vconn/vconn.c +++ b/ecp/src/ecp/vconn/vconn.c @@ -114,13 +114,17 @@ static ssize_t handle_relay(ECPConnection *conn, unsigned char *msg, size_t msg_ if (_idx != vconn->vconn_next_curr) insert_next = 1; if (vconn->vlink_next.valid) conn_next = ecp_ht_search(sock->vconn_table.vlink_keys, &vconn->vlink_next.public); + +#ifdef ECP_WITH_PTHREAD + pthread_mutex_unlock(&conn->mutex); +#endif + if (conn_next) { _rv = ecp_conn_refcount_inc(conn_next); if (_rv) conn_next = NULL; } #ifdef ECP_WITH_PTHREAD - pthread_mutex_unlock(&conn->mutex); pthread_mutex_unlock(&sock->vconn_table.vlink_keys_mutex); #endif |