Practical/common approaches to 'using' threadsafe functions for simple shared variables?

I just realized I did not address your very valid concerns properly. In the system I was speaking of, data that was passed from one process/task to another went through the shared virtual memory queues, which did have thread safety built in. The other variables were of the store, once generally at startup and read-only by any process/task thereafter, so thread safety was not an issue.
I can tell you that the system ran 24/6 for 10+ years, processing billions of transactions, and no data error was ever detected. Our users were always the first to tell us if something didn't look right.