It's a tiny bit confusing to have the incoming pid be called Self, but using your real self in the line above. Since it's important to understand that pids end up associated with the locks, it might be good to rename?