docmaboul | Bonjour,
je recherche une lib C rapide et efficiente, utilisable directement et facilement, pour faire des allocations en shared memory.
Idéalement, elle gère elle-même les locks et je voudrais pouvoir l'utiliser ainsi (grosso-merdo) :
Code :
- struct t_mem_alloc * pFixedAlloc;
- struct t_mem_alloc * pVariableAlloc;
- void * heap;
- int mem_offset;
- /* initialisation de heap dans la shared avec 2Mo */
- /* la même zone est utilisée par différents programmes */
- lib_init_heap_zone(&heap, 2*1024*1024, "/tmp/prout_prout_seg.shm" );
- lib_create_allocator_fixed(
- &pFixedAlloc,
- heap, // les allocations seront faites dans la région pointée par heap
- 12, // pFixedAlloc n'allouera que des blocks de 12 octets
- 1024*1024); // sur une région de 1Mo
- mem_offset=lib_malloc_fixed(pFixedAlloc); // on alloue 12 octets
- memcpy(lib_get_addr_fixed(pFixedAlloc, mem_offset), "blablablabla", 12);
- lib_free_fixed(pFixedAlloc, mem_offset); // on libère 12 octets
-
- lib_create_allocator_variable(
- &pVariableAlloc,
- (char*)heap+(1024*1024), // les allocations seront faites dans la région pointée par heap + 1Mo
- 1024*1024); // sur une région de 1Mo
- mem_offset=lib_malloc_variable(pVariableAlloc, 128); // on alloue 128 octets
- mem_offset=lib_realloc_variable(pVariableAlloc, mem_offset, 256);
- lib_free_variable(pVariableAlloc, mem_offset);
- lib_destroy_allocator_fixed(pFixedAlloc);
- lib_destroy_allocator_variable(pVariableAlloc);
|
Dans ce que j'ai trouvé avec google, il n'y a que heap layers qui permettrait de construire une telle lib ce qui n'est pas tout à fait ce que je recherche. Quelqu'un connaîtrait-il une petite merveille correspondant à ce que je recherche? Message édité par docmaboul le 17-04-2004 à 17:15:23
|