本文整理汇总了C++中SharedMemoryProcessDataHeader::GetNextInProcessDataHeaderList方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedMemoryProcessDataHeader::GetNextInProcessDataHeaderList方法的具体用法?C++ SharedMemoryProcessDataHeader::GetNextInProcessDataHeaderList怎么用?C++ SharedMemoryProcessDataHeader::GetNextInProcessDataHeaderList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedMemoryProcessDataHeader
的用法示例。
在下文中一共展示了SharedMemoryProcessDataHeader::GetNextInProcessDataHeaderList方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoveProcessDataHeader
void SharedMemoryManager::RemoveProcessDataHeader(SharedMemoryProcessDataHeader *processDataHeader)
{
_ASSERTE(processDataHeader != nullptr);
_ASSERTE(IsCreationDeletionProcessLockAcquired());
if (s_processDataHeaderListHead == processDataHeader)
{
s_processDataHeaderListHead = processDataHeader->GetNextInProcessDataHeaderList();
processDataHeader->SetNextInProcessDataHeaderList(nullptr);
return;
}
for (SharedMemoryProcessDataHeader
*previous = s_processDataHeaderListHead,
*current = previous->GetNextInProcessDataHeaderList();
current != nullptr;
previous = current, current = current->GetNextInProcessDataHeaderList())
{
if (current == processDataHeader)
{
previous->SetNextInProcessDataHeaderList(current->GetNextInProcessDataHeaderList());
current->SetNextInProcessDataHeaderList(nullptr);
return;
}
}
_ASSERTE(false);
}
示例2: AddProcessDataHeader
void SharedMemoryManager::AddProcessDataHeader(SharedMemoryProcessDataHeader *processDataHeader)
{
_ASSERTE(processDataHeader != nullptr);
_ASSERTE(IsCreationDeletionProcessLockAcquired());
_ASSERTE(processDataHeader->GetNextInProcessDataHeaderList() == nullptr);
_ASSERTE(FindProcessDataHeader(processDataHeader->GetId()) == nullptr);
processDataHeader->SetNextInProcessDataHeaderList(s_processDataHeaderListHead);
s_processDataHeaderListHead = processDataHeader;
}
示例3: StaticClose
void SharedMemoryManager::StaticClose()
{
// This function could very well be running during abrupt shutdown, and there could still be user threads running.
// Synchronize the deletion, and don't remove or delete items in the linked list.
AcquireCreationDeletionProcessLock();
for (SharedMemoryProcessDataHeader *current = s_processDataHeaderListHead;
current != nullptr;
current = current->GetNextInProcessDataHeaderList())
{
current->Close();
}
ReleaseCreationDeletionProcessLock();
// This function could very well be running during abrupt shutdown, and there could still be user threads running. Don't
// delete the creation/deletion process lock, the process is shutting down anyway.
}
示例4:
SharedMemoryProcessDataHeader *SharedMemoryManager::FindProcessDataHeader(SharedMemoryId *id)
{
_ASSERTE(IsCreationDeletionProcessLockAcquired());
// TODO: Use a hash table
for (SharedMemoryProcessDataHeader *current = s_processDataHeaderListHead;
current != nullptr;
current = current->GetNextInProcessDataHeaderList())
{
if (current->GetId()->Equals(id))
{
return current;
}
}
return nullptr;
}