update threadpool
This commit is contained in:
+1
-4
@@ -3,11 +3,8 @@
|
||||
|
||||
extern void* Aalloc(size_t sz);
|
||||
extern int Afree(void * mem);
|
||||
extern size_t register_memory(void* ptr, void(dealloc)(void*));
|
||||
|
||||
template <typename T>
|
||||
size_t register_memory(T* ptr, void(dealloc)(void*)){
|
||||
[](void* m){ auto _m = static_cast<T*>(m); delete _m; };
|
||||
}
|
||||
struct Session{
|
||||
struct Statistic{
|
||||
size_t total_active;
|
||||
|
||||
+18
-4
@@ -2,18 +2,32 @@
|
||||
|
||||
#include <memory>
|
||||
#include <stdlib>
|
||||
#include <unordered_set>
|
||||
#include <unordered_map>
|
||||
|
||||
Session* session;
|
||||
void init_session(){
|
||||
|
||||
}
|
||||
|
||||
void end_session(){
|
||||
|
||||
}
|
||||
|
||||
void* Aalloc(size_t sz){
|
||||
void mem = malloc(sz);
|
||||
auto memmap = (std::unordered_set<void*>*) session->memory_map;
|
||||
void* mem = malloc(sz);
|
||||
auto memmap = (std::unordered_map<void*>*) session->memory_map;
|
||||
memmap->insert(mem);
|
||||
return mem;
|
||||
}
|
||||
|
||||
int Afree(void* mem){
|
||||
auto memmap = (std::unordered_set<void*>*) session->memory_map;
|
||||
auto memmap = (std::unordered_map<void*>*) session->memory_map;
|
||||
memmap->erase(mem);
|
||||
return free(mem);
|
||||
}
|
||||
|
||||
void register_memory(void* ptr, void(dealloc)(void*)){
|
||||
auto memmap = (std::unordered_map<void*>*) session->memory_map;
|
||||
memmap->insert(ptr);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user