bug 552266 - followup to fix jslock.cpp to use cx->thread->requestContext, not cx->requestDepth, when claiming titles.

This commit is contained in:
Igor Bukanov 2010-07-26 21:02:10 +02:00
Родитель d024da7d92
Коммит 03ac22d54b
1 изменённых файлов: 5 добавлений и 4 удалений

Просмотреть файл

@ -421,7 +421,7 @@ WillDeadlock(JSContext *ownercx, JSThread *thread)
for (;;) {
JS_ASSERT(ownercx->thread);
JS_ASSERT(ownercx->requestDepth > 0);
JS_ASSERT(ownercx->thread->requestContext);
JSTitle *title = ownercx->thread->titleToShare;
if (!title || !title->ownercx) {
/*
@ -530,7 +530,7 @@ static JSBool
ClaimTitle(JSTitle *title, JSContext *cx)
{
JSRuntime *rt = cx->runtime;
JS_ASSERT_IF(cx->requestDepth == 0,
JS_ASSERT_IF(!cx->thread->requestContext,
cx->thread == rt->gcThread && rt->gcRunning);
JS_RUNTIME_METER(rt, claimAttempts);
@ -559,12 +559,13 @@ ClaimTitle(JSTitle *title, JSContext *cx)
bool canClaim;
if (title->u.link) {
JS_ASSERT(js_ValidContextPointer(rt, ownercx));
JS_ASSERT(ownercx->requestDepth > 0);
JS_ASSERT(ownercx->thread->requestContext);
JS_ASSERT(!rt->gcRunning);
canClaim = (ownercx->thread == cx->thread);
} else {
canClaim = (!js_ValidContextPointer(rt, ownercx) ||
!ownercx->requestDepth ||
!ownercx->thread ||
!ownercx->thread->requestContext ||
cx->thread == ownercx->thread ||
cx->thread == rt->gcThread ||
ownercx->thread->gcWaiting);