There is one global program registry in the shell for managing processes. That registry has a mutex, and uses it to protect it's internal lookup tables against concurrent access.
On windows, it additionally has a map from pid to HANDLE, but offers this as a public member and makes no effort to ensure thread safe access. We need to bury access to that type behind methods and use the registry mutex to guard _handle inside.