Use silc_thread_yield when deleting packet waiter.
authorPekka Riikonen <priikone@silcnet.org>
Wed, 14 Mar 2007 15:31:59 +0000 (15:31 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Wed, 14 Mar 2007 15:31:59 +0000 (15:31 +0000)
lib/silccore/silcpacket.c

index df3e8be7e38a88fbe8faccb7328217381b617c8f..079498c7a8ad202d047842c987bd644611cba986 100644 (file)
@@ -2319,6 +2319,7 @@ void silc_packet_wait_uninit(void *waiter, SilcPacketStream stream)
   pw->stopped = TRUE;
   silc_cond_broadcast(pw->wait_cond);
   silc_mutex_unlock(pw->wait_lock);
+  silc_thread_yield();
 
   /* Re-acquire lock and free resources */
   silc_mutex_lock(pw->wait_lock);
@@ -2507,7 +2508,7 @@ int silc_packet_wrap_write(SilcStream stream, const unsigned char *data,
   SilcPacketWrapperStream pws = stream;
   SilcBool ret = FALSE;
 
-  /* Call decoder if set */
+  /* Call encoder if set */
   if (pws->coder) {
     silc_buffer_reset(pws->encbuf);
     ret = pws->coder(stream, SILC_STREAM_CAN_WRITE, pws->encbuf,