diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/docs/XRay.rst | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/docs/XRay.rst b/llvm/docs/XRay.rst index 17dde123483..222cc8f2e04 100644 --- a/llvm/docs/XRay.rst +++ b/llvm/docs/XRay.rst @@ -162,6 +162,19 @@ functions we list below: - ``__xray_unpatch()``: Unpatch the instrumentation points defined in the binary. +There are some requirements on the logging handler to be installed for the +thread-safety of operations to be performed by the XRay runtime library: + +- The function should be thread-safe, as multiple threads may be invoking the + function at the same time. If the logging function needs to do + synchronisation, it must do so internally as XRay does not provide any + synchronisation guarantees outside from the atomicity of updates to the + pointer. +- The pointer provided to ``__xray_set_handler(...)`` must be live even after + calls to ``__xray_remove_handler()`` and ``__xray_unpatch()`` have succeeded. + XRay cannot guarantee that all threads that have ever gotten a copy of the + pointer will not invoke the function. + Trace Analysis Tools -------------------- |

