本文整理汇总了C++中XPCPerThreadData::Cleanup方法的典型用法代码示例。如果您正苦于以下问题:C++ XPCPerThreadData::Cleanup方法的具体用法?C++ XPCPerThreadData::Cleanup怎么用?C++ XPCPerThreadData::Cleanup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XPCPerThreadData
的用法示例。
在下文中一共展示了XPCPerThreadData::Cleanup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lock
// static
void
XPCPerThreadData::CleanupAllThreads()
{
// I've questioned the sense of cleaning up other threads' data from the
// start. But I got talked into it. Now I see that we *can't* do all the
// cleaup while holding this lock. So, we are going to go to the trouble
// to copy out the data that needs to be cleaned up *outside* of
// the lock. Yuk!
XPCJSContextStack** stacks = nsnull;
int count = 0;
int i;
if(gLock)
{
nsAutoLock lock(gLock);
for(XPCPerThreadData* cur = gThreads; cur; cur = cur->mNextThread)
count++;
stacks = (XPCJSContextStack**) new XPCJSContextStack*[count] ;
if(stacks)
{
i = 0;
for(XPCPerThreadData* cur = gThreads; cur; cur = cur->mNextThread)
{
stacks[i++] = cur->mJSContextStack;
cur->mJSContextStack = nsnull;
cur->Cleanup();
}
}
}
if(stacks)
{
for(i = 0; i < count; i++)
delete stacks[i];
delete [] stacks;
}
if(gTLSIndex != BAD_TLS_INDEX)
PR_SetThreadPrivate(gTLSIndex, nsnull);
}