@@ -416,9 +416,9 @@ static int ServerMemSend(info_t* info, char* buf, int sz)
416416 XMEMCPY (& info -> to_client .buf [info -> to_client .write_idx ], buf , sz );
417417 info -> to_client .write_idx += sz ;
418418 info -> to_client .write_bytes += sz ;
419+ THREAD_CHECK_RET (wc_UnLockMutex (& info -> to_client .mutex ));
419420
420421 THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_client .cond ));
421- THREAD_CHECK_RET (wc_UnLockMutex (& info -> to_client .mutex ));
422422
423423#ifdef BENCH_USE_NONBLOCK
424424 if (sz == 0 ) {
@@ -436,8 +436,9 @@ static int ServerMemRecv(info_t* info, char* buf, int sz)
436436#ifndef BENCH_USE_NONBLOCK
437437 while (info -> to_server .write_idx - info -> to_server .read_idx < sz &&
438438 !info -> to_client .done ) {
439- THREAD_CHECK_RET (wolfSSL_CondWait (& info -> to_server .cond ,
440- & info -> to_server .mutex ));
439+ THREAD_CHECK_RET (wc_UnLockMutex (& info -> to_server .mutex ));
440+ THREAD_CHECK_RET (wolfSSL_CondWait (& info -> to_server .cond ));
441+ THREAD_CHECK_RET (wc_LockMutex (& info -> to_server .mutex ));
441442 }
442443#else
443444 if (info -> to_server .write_idx - info -> to_server .read_idx < sz ) {
@@ -492,8 +493,8 @@ static int ClientMemSend(info_t* info, char* buf, int sz)
492493 info -> to_server .write_idx += sz ;
493494 info -> to_server .write_bytes += sz ;
494495
495- THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_server .cond ));
496496 THREAD_CHECK_RET (wc_UnLockMutex (& info -> to_server .mutex ));
497+ THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_server .cond ));
497498
498499#ifdef BENCH_USE_NONBLOCK
499500 if (sz == 0 ) {
@@ -511,8 +512,9 @@ static int ClientMemRecv(info_t* info, char* buf, int sz)
511512#ifndef BENCH_USE_NONBLOCK
512513 while (info -> to_client .write_idx - info -> to_client .read_idx < sz &&
513514 !info -> to_server .done ) {
514- THREAD_CHECK_RET (wolfSSL_CondWait (& info -> to_client .cond ,
515- & info -> to_client .mutex ));
515+ THREAD_CHECK_RET (wc_UnLockMutex (& info -> to_client .mutex ));
516+ THREAD_CHECK_RET (wolfSSL_CondWait (& info -> to_client .cond ));
517+ THREAD_CHECK_RET (wc_LockMutex (& info -> to_client .mutex ));
516518 }
517519#else
518520 if (info -> to_client .write_idx - info -> to_client .read_idx < sz ) {
@@ -1054,8 +1056,9 @@ static int bench_tls_client(info_t* info)
10541056 if (info -> doDTLS && !info -> clientOrserverOnly ) {
10551057 THREAD_CHECK_RET (wc_LockMutex (& info -> dtls_mutex ));
10561058 if (info -> serverReady != 1 ) {
1057- THREAD_CHECK_RET (wolfSSL_CondWait (& info -> dtls_cond ,
1058- & info -> dtls_mutex ));
1059+ THREAD_CHECK_RET (wc_UnLockMutex (& info -> dtls_mutex ));
1060+ THREAD_CHECK_RET (wolfSSL_CondWait (& info -> dtls_cond ));
1061+ THREAD_CHECK_RET (wc_LockMutex (& info -> dtls_mutex ));
10591062 }
10601063 /* for next loop */
10611064 info -> serverReady = 0 ;
@@ -1201,9 +1204,9 @@ static THREAD_RETURN WOLFSSL_THREAD_NO_JOIN client_thread(void* args)
12011204
12021205 ret = bench_tls_client (info );
12031206
1204- THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_server .cond ));
12051207 info -> to_client .done = 1 ;
12061208 info -> client .ret = ret ;
1209+ THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_server .cond ));
12071210
12081211 WOLFSSL_RETURN_FROM_THREAD (NULL );
12091212}
@@ -1291,8 +1294,8 @@ static int SocketWaitClient(info_t* info)
12911294 if (!info -> clientOrserverOnly ) {
12921295 THREAD_CHECK_RET (wc_LockMutex (& info -> dtls_mutex ));
12931296 info -> serverReady = 1 ;
1294- THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> dtls_cond ));
12951297 THREAD_CHECK_RET (wc_UnLockMutex (& info -> dtls_mutex ));
1298+ THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> dtls_cond ));
12961299 }
12971300#endif
12981301 connd = (int )recvfrom (info -> listenFd , (char * )msg , sizeof (msg ),
@@ -1659,9 +1662,9 @@ static THREAD_RETURN WOLFSSL_THREAD_NO_JOIN server_thread(void* args)
16591662 }
16601663 }
16611664
1662- THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_client .cond ));
16631665 info -> to_server .done = 1 ;
16641666 info -> server .ret = ret ;
1667+ THREAD_CHECK_RET (wolfSSL_CondSignal (& info -> to_client .cond ));
16651668
16661669 WOLFSSL_RETURN_FROM_THREAD (NULL );
16671670}
0 commit comments