Re: Аллокатор с отдельными пулами памяти для разных тредов
От: remark Россия http://www.1024cores.net/
Дата: 19.10.09 13:12
Оценка: 3 (1) +1 -1
Здравствуйте, chukichuki, Вы писали:

C>Очень нужен. Причем такой, чтобы всю ранее выделенную память можно было бы освободить единоразово. Очень пригодился бы для освобождения ресурсов при экстренной остановке треда. Такие есть в природе ?


__declspec(thread) HANDLE thread_heap;

void* thread_alloc(size_t sz)
{
  if (thread_heap == 0)
    thread_heap = HeapCreate(HEAP_NO_SERIALIZE, 0, 0);
  return HeapAlloc(thread_heap, 0, sz);
}

void thread_free(void* p)
{
  HeapFree(thread_heap, 0, p);
}

void on_thread_end()
{
  if (thread_heap)
    HeapDestroy(thread_heap);
}



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.