Classic Mac OS and Apple IIgs also used Handles for memory allocations (where a handle was a pointer to a pointer) for the same reason - so non-locked memory could be relocated (also purgeable handles could be purged) as necessary. In combination with the resource manager, this was sort of a poor-man's implementation of mmap.
The API was slightly different in that you could just dereference the handle at any time to get a pointer so locking wasn't quite as enforced, it sounds like.
The API was slightly different in that you could just dereference the handle at any time to get a pointer so locking wasn't quite as enforced, it sounds like.