* AssemblyNameTest.cs: Added tests for Clone and serialization without
[mono.git] / mono / io-layer / critical-sections.c
index e21c161fb202a41c833093e2945fc87d4e48c2a8..7f8553ce5285a829d61cfde7bd934a26c69ffe31 100644 (file)
@@ -1,3 +1,12 @@
+/*
+ * critical-sections.c:  Critical sections
+ *
+ * Author:
+ *     Dick Porter (dick@ximian.com)
+ *
+ * (C) 2002 Ximian, Inc.
+ */
+
 #include <config.h>
 #include <glib.h>
 #include <pthread.h>
  * here but I'd need a mutex around the critical section structure
  * anyway.  So I may as well just use a pthread mutex.
  */
-static pthread_once_t attr_key_once=PTHREAD_ONCE_INIT;
+static mono_once_t attr_key_once=MONO_ONCE_INIT;
 static mono_mutexattr_t attr;
 
 static void attr_init(void)
 {
-       mono_mutexattr_init(&attr);
-       mono_mutexattr_settype(&attr, MONO_MUTEX_RECURSIVE);
+       int ret;
+       
+       ret = mono_mutexattr_init(&attr);
+       g_assert (ret == 0);
+       
+       ret = mono_mutexattr_settype(&attr, MONO_MUTEX_RECURSIVE);
+       g_assert (ret == 0);
 }
 
 /**
@@ -34,8 +48,11 @@ static void attr_init(void)
  */
 void InitializeCriticalSection(WapiCriticalSection *section)
 {
-       pthread_once(&attr_key_once, attr_init);
-       mono_mutex_init(&section->mutex, &attr);
+       int ret;
+       
+       mono_once(&attr_key_once, attr_init);
+       ret = mono_mutex_init(&section->mutex, &attr);
+       g_assert (ret == 0);
 }
 
 /**
@@ -66,7 +83,10 @@ gboolean InitializeCriticalSectionAndSpinCount(WapiCriticalSection *section,
  */
 void DeleteCriticalSection(WapiCriticalSection *section)
 {
-       mono_mutex_destroy(&section->mutex);
+       int ret;
+       
+       ret = mono_mutex_destroy(&section->mutex);
+       g_assert (ret == 0);
 }
 
 /**
@@ -126,7 +146,12 @@ gboolean TryEnterCriticalSection(WapiCriticalSection *section)
  */
 void EnterCriticalSection(WapiCriticalSection *section)
 {
-       mono_mutex_lock(&section->mutex);
+       int stat;
+
+       if ((stat = mono_mutex_lock(&section->mutex)) != 0) {
+               g_error (G_GNUC_PRETTY_FUNCTION
+                        ": EnterCriticalSection failed: %s", g_strerror(stat));
+       }
 }
 
 /**
@@ -141,6 +166,9 @@ void EnterCriticalSection(WapiCriticalSection *section)
  */
 void LeaveCriticalSection(WapiCriticalSection *section)
 {
-       mono_mutex_unlock(&section->mutex);
+       int ret;
+       
+       ret = mono_mutex_unlock(&section->mutex);
+       g_assert (ret == 0);
 }