2011-08-16 15 views
7

Sto cercando di utilizzare un segmento simile a mmap per allocare oggetti su contenitori stl, per quello sto utilizzando boost :: interprocess che fornisce con mapping di memoria, allocatori e memoria anonima supporto alla mappatura.
Un po 'come thisboost :: allococessore allocatore di memoria su segmento anonimo

mio problema è che la funzione di anonymous_shared_memoryhere restituisce qualcosa che sembra file di mezzo mappato e la memoria condivisa la metà (senso con mmap :)) e, anche se entrambi gli stili lavorano con interprocess allocators questo si guarda come la sua scomparsa un segment_manager che esegue l'allocazione del blocco effettivo.
Come restituisce un livello alto mapped_region già mappato nel processo ma senza alcun gestore e nessun modo che possa vedere per agganciare un segment_manager.

+0

Se 'anonymous_shared_memory' non è conforme agli interprocessi del protocollo, gli allocatori si aspettano, sembra un bug. Ti consiglio di provare a segnalarlo. –

risposta

3

A mapped_region è un oggetto di livello medio basso e rappresenta letteralmente solo la memoria. Managed shared memory, tuttavia

è una classe avanzata che combina un oggetto di memoria condivisa ed una regione mappata che copre tutto l'oggetto di memoria condivisa,

quindi è la memoria gestita che possiedono il segment_manager.

Dato che si desidera utilizzare anonymous_shared_memory, prima si otterrebbe il memory_region come per l'esempio, allora si può usare il posizionamento new per mettere un segment_manager a di esso. Il suo constructor prende la dimensione del segmento di memoria in cui viene costruito. Non so se questo include le dimensioni del gestore, anche se sospetto che sia incluso.

+0

@Arkaitz, hai provato questo? Vorresti che mettessi insieme un codice per questo? – rcollyer

+0

si prega di fare; sarebbe utile! –

+0

@ EiyrioüvonKauyf è stato un tempo molto lungo da quando ho guardato questo, quindi se non invio il codice questo fine settimana per questo, colpiscimi di nuovo. – rcollyer

Problemi correlati