30 lines
539 B
C++
30 lines
539 B
C++
#pragma once
|
|
|
|
#include "shm_helper.h"
|
|
|
|
class ShmWorker {
|
|
public:
|
|
ShmWorker();
|
|
~ShmWorker();
|
|
|
|
bool register_worker(int32_t tgid, uint64_t *out_shareable_handle,
|
|
uint64_t *out_vmem_size);
|
|
|
|
bool lock_gpu();
|
|
void unlock_gpu();
|
|
|
|
|
|
private:
|
|
int32_t tgid;
|
|
ShmHelper *shm_helper;
|
|
std::thread heart_beat_thread;
|
|
std::atomic<bool> stop_heart_beat;
|
|
|
|
// request
|
|
uint64_t make_request(uint32_t type, uint64_t parameter);
|
|
int register_worker_shm();
|
|
|
|
// heart beat
|
|
void heart_beat_loop(int slot);
|
|
};
|