Locked mutexes eventually need to be unlocked

The unlock after the first if statement needs to happen because a RWMutex keeps count of active readers.  I found the issue by running boxcars and hitting a deadlock.

http://golang.org/src/pkg/sync/rwmutex.go?s=862:888#L19