Use reader writer locks

Should help performance in mostly read systems like ours