14:37:28Bikethe underlying difference is that the existing code looks up the global value and stores that in the old value storage, whereas mine just grabs the _NoThreadLocalBinding<T_O> from the thread local storage, and never touches the global value
16:37:50Bikedrmeister: https://en.cppreference.com/w/cpp/atomic/memory_order Here is the C++ definition, which as far as I can tell is not comprehensible by unaugmented humans
16:38:16Bikehttps://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints here is llvm's description (and see the link to the "simpler introduction")
16:39:10Bikehttps://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf and here is JSR 133, the part of java defining the memory model (or it did in the past, whatever), which is what I finally found that I could understand
16:39:31Bikeit doesn't cover all the differences in C++ since Java doesn't have them, but it covers the basic concepts pretty well I think. with examples
17:43:02Bikei figured it out. it was of course a stupid typo that wasn't even related to what we were looking at
17:43:43Bikein cwvb-test, I wrote "SimpleDynamicScopeRAII(sym,val);" instead of "SimpleDynamicScopeRAII scope(sym,val);", so it destroyed the object immediately (thus unbinding the variable) instead of after the function call.
17:58:44drmeisterOh right. I've been caught by that.
18:15:22drmeisterBike: Do you have a few min - could you drop by my office?