Когда я попытался работать с файлами в Go через ioutil то понял что оно не потокобезопасно, долгий гуглинг мне как-то не помог и я решил построить велосипед. Суть в том что у нас есть мап который хранит для каждого файла с которым когда либо работал пакет мьютекс и во время чтения с файла блочит его на уровне логики при помощи RLock() ну и при записи собственно Lock() и оно даже выполняет поставленную задачу.
Когда я пытался написать тесты то вышло вот
это.
То что вышло мне не нравится и кажется диким говнокодом. Можно это сделать правильнее\элегантнее?