]> pd.if.org Git - pdclib.old/commitdiff
opt/nothread: add support for recursion
authorOwen Shepherd <owen.shepherd@e43.eu>
Thu, 27 Dec 2012 00:29:19 +0000 (00:29 +0000)
committerOwen Shepherd <owen.shepherd@e43.eu>
Thu, 27 Dec 2012 00:29:19 +0000 (00:29 +0000)
opt/nothread/mtx_lock.c
opt/nothread/mtx_trylock.c
opt/nothread/mtx_unlock.c

index d086986555dcd48c6808122333bd51bad77b55fd..efe26bd4de6f0b16ae7c706938ff56b4586fed77 100644 (file)
@@ -3,10 +3,8 @@
 \r
 int mtx_lock(mtx_t *mtx)\r
 {\r
-       if(*mtx == 0) {\r
-               *mtx = 1;\r
-               return thrd_success;\r
-       } else return thrd_error;\r
+       (*mtx)++;\r
+       return thrd_success;\r
 }\r
 #endif\r
 \r
index bffc8b85b139b430df32c437585dd70fe06308b5..20efc99403afcc8316c9133ff06a2e9913dc9e0b 100644 (file)
@@ -3,12 +3,8 @@
 \r
 int mtx_trylock(mtx_t *mtx)\r
 {\r
-       if(*mtx) {\r
-               return thrd_error;\r
-       } else {\r
-               *mtx = 1;\r
-               return thrd_success;\r
-       }\r
+       (*mtx)++;\r
+       return thrd_success;\r
 }\r
 #endif\r
 \r
index 214a06390a51e752f109b7d53fb1561291b72b03..97a93a67ac021e8c319c6966a0609859446dc511 100644 (file)
@@ -3,10 +3,9 @@
 \r
 int mtx_unlock(mtx_t *mtx)\r
 {\r
-       if(*mtx) {\r
-               *mtx = 0;\r
-               return thrd_success;\r
-       } else return thrd_error;\r
+       if(--(*mtx) >= 0)\r
+        return thrd_success;\r
+    return thrd_error;\r
 }\r
 #endif\r
 \r