Thread safe set data structure strongly strongly based off of the safe map example from http://www.qtrac.eu/gobook.html