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);
|
||
|
|
};
|