Glad you found the problem.
From what you’ve said, you are interpreting the documentation correctly (although I’d have to see a diff of what you’ve done to be sure). Previously, people (myself included) thought that volatile should be used to indicate a variable which is accessed atomically or by multiple threads, but that’s now understood to not be correct. volatile should basically never be used in C.