Resource Tuner
Loading...
Searching...
No Matches
ClientGarbageCollector.h
Go to the documentation of this file.
1// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2// SPDX-License-Identifier: BSD-3-Clause-Clear
3
4#ifndef CLIENT_GARBAGE_COLLECTOR_H
5#define CLIENT_GARBAGE_COLLECTOR_H
6
28#include <cstdint>
29#include <memory>
30#include <queue>
31#include <mutex>
32
33#include "Timer.h"
34#include "RequestQueue.h"
35#include "RequestManager.h"
36
43private:
44 static std::shared_ptr<ClientGarbageCollector> mClientGarbageCollectorInstance;
45
46 Timer* mTimer;
47 std::mutex mGcQueueMutex;
48 std::queue<int32_t> mGcQueue;
49 uint32_t mGarbageCollectionDuration;
50
52
53 void performCleanup();
54
55public:
57
68
69 void stopClientGarbageCollectorDaemon();
70 void submitClientThreadsForCleanup(int32_t clientTid);
71
72 static std::shared_ptr<ClientGarbageCollector> getInstance() {
73 if(mClientGarbageCollectorInstance == nullptr) {
74 mClientGarbageCollectorInstance = std::shared_ptr<ClientGarbageCollector> (new ClientGarbageCollector());
75 }
76 return mClientGarbageCollectorInstance;
77 }
78};
79
80ErrCode startClientGarbageCollectorDaemon();
81void stopClientGarbageCollectorDaemon();
82
83#endif
84
ErrCode
Custom Error Codes used by Resource Tuner APIs and Internal Functions.
Definition ErrCodes.h:17
ClientGarbageCollector.
ErrCode startClientGarbageCollectorDaemon()
Starts the Client Garbage Collector.
Timer.
Definition Timer.h:20