Let's use sync facilities instead of routines.
It does not make much sence to sequence reads, so RLock is enough.
Also there's no performance benefit of using routines instead of Locks.
Refactored to use "method values" introduced in GO 1.1
https://go.googlecode.com/hg/doc/go1.1.html