Given is some code to cache key-value pairs from a mock database into the main memory (to reduce access time). The code is buggy and contains a race conditition. Change the code to make this thread safe.
Note: that golang's map are not entirely thread safe. Multiple readers are fine, but multiple writers are not.
Use the following command to test for race conditions and correct functionality:
go test -race
Correct solution: No output = solution correct:
$ go test -race
$
Incorrect solution:
==================
WARNING: DATA RACE
Write by goroutine 7:
...
==================
Found 3 data race(s)