boostorg / boostorg/interprocess

Add support for growing `mapped_region`

オープン
#253 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
185
フォーク
131
PR マージ指標
30日以内にマージされた PR はありません

説明

[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.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず mapped_region クラスと、Linux、NetBSD、Solaris 向けに参照されている mremap のドキュメントを読んでください。記載されている Windows の制限を含め、プラットフォーム固有の API を調査し、そのうえで、拡張、移動、サポートされていないプラットフォーム、およびライブラリ構成マクロがどのように動作すべきかを定義してください。mapped_region がサポート対象のすべてのプラットフォームで要求された機能を一貫して公開できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp, linux
領域
operating-systems
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
32/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。