diff --git a/mps/src/lockcov.c b/mps/src/lockcov.c index 5f4046c36ae..bb3bee19db5 100644 --- a/mps/src/lockcov.c +++ b/mps/src/lockcov.c @@ -1,30 +1,45 @@ /* impl.c.lockcov * LOCK COVERAGE TEST * - * $HopeName: MMsrc!lockcov.c(trunk.2) $ + * $HopeName: MMsrc!lockcov.c(trunk.3) $ */ #include "mpm.h" +#include /* for malloc & free */ int main(void){ - LockStruct a,b; + Lock a = malloc(LockSize()); + Lock b = malloc(LockSize()); - LockInit(&a); - LockInit(&b); - LockClaim(&a); - LockClaimRecursive(&b); - LockReleaseMPM(&a); - LockClaimRecursive(&b); - LockFinish(&a); - LockReleaseRecursive(&b); - LockReleaseRecursive(&b); - LockFinish(&b); - LockInit(&a); - LockClaim(&a); - LockClaimRecursive(&a); - LockReleaseRecursive(&a); - LockReleaseMPM(&a); - LockFinish(&a); + AVER(a != NULL); + AVER(b != NULL); + + LockInit(a); + LockInit(b); + LockClaimGlobal(); + LockClaim(a); + LockClaimRecursive(b); + LockClaimGlobalRecursive(); + LockReleaseGlobal(); + LockClaimGlobal(); + LockReleaseMPM(a); + LockClaimGlobalRecursive(); + LockReleaseGlobal(); + LockClaimRecursive(b); + LockFinish(a); + LockReleaseRecursive(b); + LockReleaseRecursive(b); + LockFinish(b); + LockInit(a); + LockClaim(a); + LockClaimRecursive(a); + LockReleaseGlobalRecursive(); + LockReleaseRecursive(a); + LockReleaseMPM(a); + LockFinish(a); + LockReleaseGlobalRecursive(); + free(a); + free(b); return 0; } diff --git a/mps/src/lockutw3.c b/mps/src/lockutw3.c index 51f10a2880e..40c8f8752a1 100644 --- a/mps/src/lockutw3.c +++ b/mps/src/lockutw3.c @@ -1,6 +1,6 @@ /* impl.c.lockutw3: LOCK COVERAGE TEST * - * $HopeName: MMsrc!lockutw3.c(trunk.6) $ + * $HopeName: MMsrc!lockutw3.c(trunk.7) $ */ #include "mpm.h" @@ -12,16 +12,16 @@ #include "mpswin.h" -SRCID(lockutw3, "$HopeName: MMsrc!lockutw3.c(trunk.6) $"); +SRCID(lockutw3, "$HopeName: MMsrc!lockutw3.c(trunk.7) $"); -static LockStruct lockStruct; +static Lock lock; unsigned long shared,tmp; void incR(unsigned long i) { - LockClaimRecursive(&lockStruct); + LockClaimRecursive(lock); if(i<100) { while(i--) { tmp=shared; @@ -31,7 +31,7 @@ void incR(unsigned long i) incR(i>>1); incR(i+1>>1); } - LockReleaseRecursive(&lockStruct); + LockReleaseRecursive(lock); } void inc(unsigned long i) @@ -39,7 +39,7 @@ void inc(unsigned long i) incR(i+1>>1); i>>=1; while(i){ - LockClaim(&lockStruct); + LockClaim(lock); if(i>10000){ incR(5000); i-=5000; @@ -47,7 +47,7 @@ void inc(unsigned long i) tmp=shared; shared=tmp+1; i--; - LockReleaseMPM(&lockStruct); + LockReleaseMPM(lock); } } @@ -67,7 +67,10 @@ int main(void) nthreads = 4; - LockInit(&lockStruct); + lock = malloc(LockSize()); + AVER(lock != NULL); + + LockInit(lock); shared = 0; @@ -79,7 +82,7 @@ int main(void) AVER(shared == nthreads*COUNT); - LockFinish(&lockStruct); + LockFinish(lock); return 0; }