there is lock(2) in the public inferno distribution. the implementation is amusing. things like counting semaphores have been too, though not distributed, but these things are not used as much as channels in Limbo programming.