moving locking code into UnixRuntime and use GlobalScope to track extra-process locks