Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ongoing attempt for sthread, an automatic intercepter of pthread operations
[simgrid.git] / examples / sthread / sthread-mutex-simple.c
diff --git a/examples/sthread/sthread-mutex-simple.c b/examples/sthread/sthread-mutex-simple.c
new file mode 100644 (file)
index 0000000..efbedd3
--- /dev/null
@@ -0,0 +1,36 @@
+/* Simple test code with no bug  */
+
+#include "src/sthread/sthread.h"
+#include <stdio.h>
+
+sthread_mutex_t mutex;
+
+static void* thread1_fun(void* ignore)
+{
+  sthread_mutex_lock(&mutex);
+  sthread_mutex_unlock(&mutex);
+
+  return NULL;
+}
+static void* thread2_fun(void* ignore)
+{
+  sthread_mutex_lock(&mutex);
+  sthread_mutex_unlock(&mutex);
+
+  return NULL;
+}
+
+int main(int argc, char* argv[])
+{
+  sthread_inside_simgrid = 1;
+  sthread_mutex_init(&mutex, NULL);
+
+  sthread_t thread1, thread2;
+  sthread_create(&thread1, NULL, thread1_fun, NULL);
+  sthread_create(&thread2, NULL, thread2_fun, NULL);
+  // pthread_join(thread1, NULL);
+  // pthread_join(thread2, NULL);
+  fprintf(stderr, "done\n");
+
+  return 0;
+}