Fetched functions are recorded globally at the process level. Therefore,
a function fetched from one thread can be executed from any thread.
Module boundary crossings are thread-scoped. Writable statics have
a scope between process and thread. They are process-scoped except
that module crossings are thread-scoped. This means that:
- All threads initially inherit the writable statics of the creating
thread at the time of the creation.
- When any thread executes a function pointer supplied by the fetch() function
and crosses a module boundary, only that thread has access to the
writable statics of the fetched module.