-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Server Programmability
-
None
-
3
-
TBD
-
None
-
None
-
None
-
None
-
None
-
None
The AtomicProxy type (and the AtomicDouble typedef) seem to completely bypass all of the reasons we use Atomic<T> rather than std::atomic directly in our codebase. It seems to mostly be intended to simplify compatibility with the way that idl generates code, and not for direct usage by human written code. I think we should make that more clear:
- Teach the IDL to correctly use Atomic<T> without a proxy
- Have code just use std::atomic<T> rather than AtomicProxy<T>
- Rename to something like AtomicProxy_OnlyForUseWithIdlGeneratedCode
Note: this is fallout from marking our public API. AtomicProxy is used outside of core because the generated code is attached to the module that owns the foo.idl file, but I do not think this type should be part of our public human-facing API.