Files
compute-runtime/shared/test/common/mocks/mock_deferred_deleter.h
Igor Venevtsev 062abef8ef Revert "Deferred deletion of allocations in main thread"
This reverts commit 2ea734491a.

Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
2023-03-20 18:17:15 +01:00

79 lines
1.4 KiB
C++

/*
* Copyright (C) 2018-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/memory_manager/deferred_deleter.h"
namespace NEO {
class MockDeferredDeleter : public DeferredDeleter {
public:
using DeferredDeleter::run;
MockDeferredDeleter();
~MockDeferredDeleter() override;
void deferDeletion(DeferrableDeletion *deletion) override;
void addClient() override;
void removeClient() override;
void drain(bool blocking) override;
bool areElementsReleased() override;
bool shouldStop() override;
void drain();
int getClientsNum();
int getElementsToRelease();
bool isWorking();
bool isThreadRunning();
bool isQueueEmpty();
void setElementsToRelease(int elementsNum);
void setDoWorkInBackgroundValue(bool value);
bool baseAreElementsReleased();
bool baseShouldStop();
Thread *getThreadHandle();
void runThread();
int drainCalled = 0;
int areElementsReleasedCalled = 0;
std::atomic<int> shouldStopCalled;
std::atomic<int> clearCalled;
int deferDeletionCalled = 0;
bool stopAfter3loopsInRun = false;
void forceStop();
void allowEarlyStopThread();
void expectDrainBlockingValue(bool value);
bool expectedDrainValue = false;
bool expectDrainCalled = false;
void clearQueue() override;
};
} // namespace NEO