fix thread bug

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1943 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2007-09-29 00:29:00 +00:00
parent 77f10fe803
commit fd049830a3
2 changed files with 3 additions and 0 deletions

View File

@ -795,6 +795,7 @@ Yap_PredPropByFunctorNonThreadLocal(Functor f, Term cur_mod)
return Yap_NewPredPropByFunctor(f,cur_mod);
if ((p->ModuleOfPred == cur_mod || !(p->ModuleOfPred))) {
WRITE_UNLOCK(f->FRWLock);
return AbsPredProp(p);
}
if (p->NextOfPE) {
@ -807,6 +808,7 @@ Yap_PredPropByFunctorNonThreadLocal(Functor f, Term cur_mod)
p->ModuleOfPred == cur_mod)
{
READ_UNLOCK(PredHashRWLock);
WRITE_UNLOCK(f->FRWLock);
return AbsPredProp(p);
}
p = RepPredProp(p->NextOfPE);

View File

@ -1346,6 +1346,7 @@ GetPredPropByFuncHavingLock (FunctorEntry *fe, Term cur_mod)
#if THREADS
/* Thread Local Predicates */
if (p->PredFlags & ThreadLocalPredFlag) {
READ_UNLOCK(PredHashRWLock);
return AbsPredProp (Yap_GetThreadPred (p));
}
#endif