Statements like "record float / int [is] an atomic operation anyway", unfortunately, are not defined in C or C ++ (although using std::atomicC11 11 and stdatomic.h methods from C11 may help here, but it won't help you with C interop for a library that you cannot change, so you can probably ignore it here).
- , , , , 32- 64- , , .
. , POSIX/pthreads, mutexes pthreads - C ++, , .
C, , , ++ C, . , C, / , , - , , d , API C.