tôi có mã điều khiển một mutex khóa/mở khóa dựa trên phạm vi:Bạn có thể đảm bảo thứ tự hủy khi đối tượng được khai báo trên ngăn xếp không?
void PerformLogin()
{
ScopeLock <Lock> LoginLock(&m_LoginLock);
doLoginCommand();
ScopeLock <SharedMemoryBase> MemoryLock(&m_SharedMemory);
doStoreLogin();
...
}
Tôi có thể đảm bảo rằng MemoryLock
sẽ được destructed trước LoginLock
?
Câu trả lời hay. Tôi có một số mã dựa trên thứ tự của các cuộc gọi destructor và tôi đã tìm kiếm một lý do vững chắc tại sao họ luôn được đặt hàng theo một cách cụ thể trước khi tin tưởng mã của tôi là đúng. –