diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-09-26 22:24:31 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-09-26 22:24:31 +0200 |
commit | cdc2c30e99f2fb3d65dfbc8ef73efd433a3f1966 (patch) | |
tree | 5c3d5a6a42311f09444ca34d09bfebc78e08f5a3 /sys/src/ape/lib/ap/68020 | |
parent | b4cdfc6c5517390d6be05b2c01e56bacc9e85ea8 (diff) |
reverting semaphore lock changes from sources (r41ccd6d221da, rb28756e5ba29)
semaphore locks have much higher overhead than initially presented
in the "Semaphores in Plan9" paper. until the reason for it has been
found out i will revert the changes.
Diffstat (limited to 'sys/src/ape/lib/ap/68020')
-rw-r--r-- | sys/src/ape/lib/ap/68020/lock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/ape/lib/ap/68020/lock.c b/sys/src/ape/lib/ap/68020/lock.c index 5b1d72c46..91c0ba233 100644 --- a/sys/src/ape/lib/ap/68020/lock.c +++ b/sys/src/ape/lib/ap/68020/lock.c @@ -2,17 +2,19 @@ #include "../plan9/sys9.h" #include <lock.h> +int tas(int*); + void lock(Lock *lk) { - while(tas((int*)&lk->key)) + while(tas(&lk->val)) _SLEEP(0); } int canlock(Lock *lk) { - if(tas((int*)&lk->key)) + if(tas(&lk->val)) return 0; return 1; } @@ -20,5 +22,5 @@ canlock(Lock *lk) void unlock(Lock *lk) { - lk->key = 0; + lk->val = 0; } |