diff --git a/net/rpmsg/rpmsg_sockif.c b/net/rpmsg/rpmsg_sockif.c index 10b67d2f618..72d338d6e25 100644 --- a/net/rpmsg/rpmsg_sockif.c +++ b/net/rpmsg/rpmsg_sockif.c @@ -717,8 +717,10 @@ static int rpmsg_socket_connect_internal(FAR struct socket *psock) return ret; } + nxmutex_lock(&conn->recvlock); if (conn->sendsize == 0) { + nxmutex_unlock(&conn->recvlock); if (_SS_ISNONBLOCK(conn->sconn.s_flags)) { return -EINPROGRESS; @@ -736,6 +738,10 @@ static int rpmsg_socket_connect_internal(FAR struct socket *psock) NULL); } } + else + { + nxmutex_unlock(&conn->recvlock); + } return ret; }