boostorg / boostorg/interprocess

Add support for growing `mapped_region`

Aperta
#253 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
185
Fork
131
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

[Linux](https://linux.die.net/man/2/mremap), [NetBSD](https://man.freebsd.org/cgi/man.cgi?query=mremap&apropos=0&sektion=0&manpath=NetBSD+10.1&arch=default&format=html) and [Solaris](https://docs.oracle.com/cd/E88353_01/html/E37841/mremap-2.html) have a `mremap` system call that allows to opportunistically grow or relocate the existing memory mapping. There also seems to be a way to achieve this on [Windows](https://stackoverflow.com/questions/17197615/no-mremap-for-windows), but I'm not familiar with that API.

Please, add support for this functionality (specifically, growing and/or relocating a memory mapping) to the `mapped_region` class. For example, add a `grow_by` method that would try to increase the size of the mapped region at the same address and `remap` to relocate the region at a different address and size. On platforms that don't support this functionality, the new methods would always fail. This would also be indicated at compile time by some library-defined config macro.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia leggendo la classe mapped_region e la documentazione di mremap indicata per Linux, NetBSD e Solaris. Esamina le API specifiche delle piattaforme, inclusa la limitazione di Windows menzionata, quindi definisci come devono comportarsi l'espansione, il trasferimento, le piattaforme non supportate e la macro di configurazione della libreria. Il lavoro è completato quando mapped_region espone la funzionalità richiesta in modo coerente su tutte le piattaforme supportate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp, linux
Ambito
operating-systems
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
32/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.