Added silc_mutex_trylock
[runtime.git] / lib / silcutil / unix / silcunixthread.c
index 286a26db7fba5e4f3da8b7315fc1e304e7b6929b..fd30cf3d03b14c6e8bd75f274707c80fa27bce01 100644 (file)
@@ -200,6 +200,19 @@ void silc_mutex_unlock(SilcMutex mutex)
 #endif /* SILC_THREADS */
 }
 
+SilcBool silc_mutex_trylock(SilcMutex mutex)
+{
+#ifdef SILC_THREADS
+  if (mutex) {
+    if (pthread_mutex_trylock(&mutex->mutex) == 0) {
+      mutex->locked = TRUE;
+      return TRUE;
+    }
+  }
+#endif /* SILC_THREADS */
+  return FALSE;
+}
+
 void silc_mutex_assert_locked(SilcMutex mutex)
 {
 #ifdef SILC_THREADS