update threadpool

This commit is contained in:
2022-08-12 06:34:55 +08:00
parent 4dd6de1b0a
commit 751a442554
13 changed files with 289 additions and 21 deletions
+1 -4
View File
@@ -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
View File
@@ -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);
}