Earlier quoted context omitted.
Couldn’t you mmap a shared, read-only page so that your OS doesn’t copy it?
It would be better to mmap the file into N single-threaded processes instead of mmapping the file into 1 N-threaded process. This is exactly why signals are process-global instead of thread-local. The intent is that they were used for inter-process communication. The whole notion of processes and signals predates the notion of a thread, and threads are essentially a performance optimization for 30 or 40 year old hard…
I forget sometimes that the young'ns never grew up in a world without threads, and often never learned how unix really works.