This PR completely refactors IsoWriter to use memory mapped files to create the image. This results in:
Cleaner code - files can be read in chunks directly to a preallocated memory address that is backed by a file.
Asynchronous ECC/EDC computation - now checksums are calculated for sectors "on the side" and they are finalized only when closing the view.
In order not to explode RAM usage too much, views are mapped on per-file basis. This means that the max RAM usage of this new solution is roughly equivalent to the size of sectors occupied by the biggest file.
NOTE: I have not tested it on Linux! It would be good to know if it even works there.
This PR completely refactors
IsoWriter
to use memory mapped files to create the image. This results in:In order not to explode RAM usage too much, views are mapped on per-file basis. This means that the max RAM usage of this new solution is roughly equivalent to the size of sectors occupied by the biggest file.
NOTE: I have not tested it on Linux! It would be good to know if it even works there.