Tralsys / BIDSSMemLib

BIDS用SharedMemoryを簡単に扱うためのLibrary
https://tralsys.github.io/BIDSSMemLib/
Other
7 stars 0 forks source link

Linux/MacでSMemIFを使えるようにした #28

Closed TetsuOtter closed 1 year ago

TetsuOtter commented 1 year ago

Windows以外ではインメモリなMemoryMappedFileを作成できないため、ストレージにファイルを作成し、それをMemoryにMapすることで共有メモリの代わりとした。

なお、複数プロセスから一つのファイルに同時にアクセスするとエラーが出るため、Mutexを用いた排他制御を実装した。

このPRでは、ReaderとWriterでMutexを共有していたり、ファイル競合を無くすために毎度毎度ファイルのOpen / Closeを行うなど、非常に非効率的な実装になってしまっている。 この点については、将来的に解決したいと思いつつ、正直このままでも良いのではとか思い始めてる。