libdatadog 48.0.0.1.1-aarch64-linux → 49.0.0.1.1-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +2 -1
  3. data/vendor/{libdatadog-48.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/LICENSE-3rdparty.csv +11 -0
  4. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/common.h +119 -0
  6. data/vendor/{libdatadog-48.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/include/datadog/data-pipeline.h +449 -0
  7. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/profiling.h +4 -5
  8. data/vendor/{libdatadog-48.0.0/aarch64-linux-musl → libdatadog-49.0.0/aarch64-linux}/include/datadog/shared-runtime.h +17 -0
  9. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  10. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  11. data/vendor/{libdatadog-48.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +11 -0
  12. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  13. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/common.h +119 -0
  14. data/vendor/{libdatadog-48.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +449 -0
  15. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/profiling.h +4 -5
  16. data/vendor/{libdatadog-48.0.0/aarch64-linux → libdatadog-49.0.0/aarch64-linux-musl}/include/datadog/shared-runtime.h +17 -0
  17. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  18. data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  19. metadata +37 -37
  20. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/LICENSE +0 -0
  21. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/NOTICE +0 -0
  22. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  23. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
  24. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
  25. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/ffe.h +0 -0
  26. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/library-config.h +0 -0
  27. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  28. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/otel-thread-ctx.h +0 -0
  29. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  30. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/LICENSE +0 -0
  31. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/NOTICE +0 -0
  32. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  33. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
  34. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
  35. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/ffe.h +0 -0
  36. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/library-config.h +0 -0
  37. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  38. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/otel-thread-ctx.h +0 -0
  39. /data/vendor/{libdatadog-48.0.0 → libdatadog-49.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
@@ -146,16 +146,12 @@ void ddog_prof_Exporter_drop(struct ddog_prof_ProfileExporter *exporter);
146
146
  * This function creates the tokio runtime used by `ddog_prof_Exporter_send_blocking`.
147
147
  * It can be called ahead of time to ensure the runtime is ready before sending.
148
148
  *
149
- * # Thread Affinity
150
- *
151
- * **Important**: The runtime has thread affinity. This function should be called from
152
- * the same thread that will later call `ddog_prof_Exporter_send_blocking`.
153
- *
154
149
  * # Arguments
155
150
  * * `exporter` - Borrows the exporter.
156
151
  *
157
152
  * # Safety
158
153
  * The `exporter` must point to a valid ProfileExporter that has not been dropped.
154
+ * The caller must ensure exclusive access to the exporter for the duration of this call.
159
155
  */
160
156
  DDOG_CHECK_RETURN
161
157
  struct ddog_VoidResult ddog_prof_Exporter_init_runtime(struct ddog_prof_ProfileExporter *exporter);
@@ -166,6 +162,9 @@ struct ddog_VoidResult ddog_prof_Exporter_init_runtime(struct ddog_prof_ProfileE
166
162
  * Note: If the runtime has not been initialized via `ddog_prof_Exporter_init_runtime`,
167
163
  * it will be lazily initialized on first call.
168
164
  *
165
+ * Successive calls may use different threads, but calls accessing the same exporter
166
+ * must not overlap.
167
+ *
169
168
  * # Arguments
170
169
  * * `exporter` - Borrows the exporter.
171
170
  * * `profile` - Takes ownership of the profile.
@@ -84,6 +84,23 @@ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_after_fork_child(const st
84
84
  struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_shutdown(const struct ddog_ForkSafeRuntime *handle,
85
85
  uint64_t timeout_ms);
86
86
 
87
+ /**
88
+ * Force a flush of a worker and block until it completes.
89
+ *
90
+ * Requests a flush on `worker` and blocks the calling thread on `runtime` until the worker has
91
+ * flushed. `timeout_ms` bounds the wait, in milliseconds; pass `0` for no timeout.
92
+ *
93
+ * Must not be called between [`ddog_shared_runtime_before_fork`] and
94
+ * `ddog_shared_runtime_after_fork_*`: the flush is deferred until workers restart, so the call
95
+ * would block until the timeout.
96
+ *
97
+ * Returns `None` on success, or an error if an argument is null, the worker has been stopped,
98
+ * the worker was dropped before flushing, or the timeout was reached.
99
+ */
100
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_worker_flush(const struct ddog_ForkSafeRuntime *runtime,
101
+ const struct ddog_WorkerHandle *worker,
102
+ uint64_t timeout_ms);
103
+
87
104
  #ifdef __cplusplus
88
105
  } // extern "C"
89
106
  #endif // __cplusplus
@@ -8,7 +8,7 @@ includedir=${prefix}/include
8
8
 
9
9
  Name: datadog_profiling
10
10
  Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
11
- Version: 48.0.0
11
+ Version: 49.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private:
@@ -56,6 +56,7 @@ bolero-honggfuzz,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bythew
56
56
  bolero-kani,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bytheway.cameron@gmail.com>
57
57
  bolero-libfuzzer,https://github.com/camshaft/bolero,MIT,Cameron Bytheway <bytheway.cameron@gmail.com>
58
58
  borrow-or-share,https://github.com/yescallop/borrow-or-share,MIT-0,Scallop Ye <yescallop@gmail.com>
59
+ buffered-io,https://github.com/rmja/buffered-io,MIT OR Apache-2.0,Rasmus Melchior Jacobsen <rmja@laesoe.org>
59
60
  bumpalo,https://github.com/fitzgen/bumpalo,MIT OR Apache-2.0,Nick Fitzgerald <fitzgen@gmail.com>
60
61
  byteorder,https://github.com/BurntSushi/byteorder,Unlicense OR MIT,Andrew Gallant <jamslam@gmail.com>
61
62
  bytes,https://github.com/tokio-rs/bytes,MIT,"Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>"
@@ -126,6 +127,10 @@ displaydoc,https://github.com/yaahc/displaydoc,MIT OR Apache-2.0,Jane Lusby <jlu
126
127
  dyn-clone,https://github.com/dtolnay/dyn-clone,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
127
128
  either,https://github.com/rayon-rs/either,MIT OR Apache-2.0,bluss
128
129
  elf,https://github.com/cole14/rust-elf,MIT OR Apache-2.0,Christopher Cole <chris.cole.09@gmail.com>
130
+ embedded-io,https://github.com/rust-embedded/embedded-hal,MIT OR Apache-2.0,The embedded-io Authors
131
+ embedded-io-async,https://github.com/rust-embedded/embedded-hal,MIT OR Apache-2.0,The embedded-io-async Authors
132
+ embedded-nal,https://github.com/rust-embedded-community/embedded-nal,MIT OR Apache-2.0,"Jonathan 'theJPster' Pallant <github@thejpster.org.uk>, Mathias Koch <mk@blackbird.online>, Diego Barrios Romero <eldruin@gmail.com>, Ryan Summers <ryan.summers@vertigo-designs.com>"
133
+ embedded-nal-async,https://github.com/rust-embedded-community/embedded-nal,MIT OR Apache-2.0,The embedded-nal-async Authors
129
134
  encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen <hsivonen@hsivonen.fi>
130
135
  enum-as-inner,https://github.com/bluejekyll/enum-as-inner,MIT OR Apache-2.0,Benjamin Fry <benjaminfry@me.com>
131
136
  equivalent,https://github.com/cuviper/equivalent,Apache-2.0 OR MIT,The equivalent Authors
@@ -167,11 +172,13 @@ gloo-timers,https://github.com/rustwasm/gloo/tree/master/crates/timers,MIT OR Ap
167
172
  h2,https://github.com/hyperium/h2,MIT,"Carl Lerche <me@carllerche.com>, Sean McArthur <sean@seanmonstar.com>"
168
173
  half,https://github.com/starkat99/half-rs,MIT OR Apache-2.0,Kathryn Long <squeeself@gmail.com>
169
174
  halfbrown,https://github.com/Licenser/halfbrown,Apache-2.0 OR MIT,Heinz N. Gies <heinz@licenser.net>
175
+ hash32,https://github.com/japaric/hash32,MIT OR Apache-2.0,Jorge Aparicio <jorge@japaric.io>
170
176
  hashbrown,https://github.com/rust-lang/hashbrown,MIT OR Apache-2.0,Amanieu d'Antras <amanieu@gmail.com>
171
177
  hashbrown,https://github.com/rust-lang/hashbrown,MIT OR Apache-2.0,The hashbrown Authors
172
178
  hdrhistogram,https://github.com/HdrHistogram/HdrHistogram_rust,MIT OR Apache-2.0,"Jon Gjengset <jon@thesquareplanet.com>, Marshall Pierce <marshall@mpierce.org>"
173
179
  headers,https://github.com/hyperium/headers,MIT,Sean McArthur <sean@seanmonstar.com>
174
180
  headers-core,https://github.com/hyperium/headers,MIT,Sean McArthur <sean@seanmonstar.com>
181
+ heapless,https://github.com/rust-embedded/heapless,MIT OR Apache-2.0,"Jorge Aparicio <jorge@japaric.io>, Per Lindgren <per.lindgren@ltu.se>, Emil Fresk <emil.fresk@gmail.com>"
175
182
  heck,https://github.com/withoutboats/heck,MIT OR Apache-2.0,The heck Authors
176
183
  hermit-abi,https://github.com/hermit-os/hermit-rs,MIT OR Apache-2.0,Stefan Lankes
177
184
  hex,https://github.com/KokaKiwi/rust-hex,MIT OR Apache-2.0,KokaKiwi <kokakiwi@kokakiwi.net>
@@ -252,8 +259,10 @@ moka,https://github.com/moka-rs/moka,(MIT OR Apache-2.0) AND Apache-2.0,The moka
252
259
  msvc-demangler,https://github.com/mstange/msvc-demangler-rust,MIT OR NCSA,"Markus Stange <mstange@themasta.com>, Jeff Muizelaar <jrmuizel@gmail.com>"
253
260
  multer,https://github.com/rwf2/multer,MIT,Rousan Ali <hello@rousan.io>
254
261
  multimap,https://github.com/havarnov/multimap,MIT OR Apache-2.0,Håvar Nøvik <havar.novik@gmail.com>
262
+ nb,https://github.com/rust-embedded/nb,MIT OR Apache-2.0,Jorge Aparicio <jorge@japaric.io>
255
263
  nix,https://github.com/nix-rust/nix,MIT,The nix-rust Project Developers
256
264
  nom,https://github.com/Geal/nom,MIT,contact@geoffroycouprie.com
265
+ nourl,https://github.com/rmja/nourl,MIT OR Apache-2.0,Rasmus Melchior Jacobsen <rmja@laesoe.org>
257
266
  ntapi,https://github.com/MSxDOS/ntapi,Apache-2.0 OR MIT,MSxDOS <melcodos@gmail.com>
258
267
  num-conv,https://github.com/jhpratt/num-conv,MIT OR Apache-2.0,Jacob Pratt <jacob@jhpratt.dev>
259
268
  num-derive,https://github.com/rust-num/num-derive,MIT OR Apache-2.0,The Rust Project Developers
@@ -345,6 +354,7 @@ regex-automata,https://github.com/rust-lang/regex/tree/master/regex-automata,MIT
345
354
  regex-lite,https://github.com/rust-lang/regex,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>"
346
355
  regex-syntax,https://github.com/rust-lang/regex/tree/master/regex-syntax,MIT OR Apache-2.0,"The Rust Project Developers, Andrew Gallant <jamslam@gmail.com>"
347
356
  reqwest,https://github.com/seanmonstar/reqwest,MIT OR Apache-2.0,Sean McArthur <sean@seanmonstar.com>
357
+ reqwless,https://github.com/drogue-iot/reqwless,Apache-2.0,The reqwless Authors
348
358
  resolv-conf,https://github.com/hickory-dns/resolv-conf,MIT OR Apache-2.0,The resolv-conf Authors
349
359
  ring,https://github.com/briansmith/ring,Apache-2.0 AND ISC,The ring Authors
350
360
  rmp,https://github.com/3Hren/msgpack-rust,MIT,Evgeny Safronov <division494@gmail.com>
@@ -377,6 +387,7 @@ security-framework,https://github.com/kornelski/rust-security-framework,MIT OR A
377
387
  security-framework-sys,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler <sfackler@gmail.com>, Kornel <kornel@geekhood.net>"
378
388
  semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
379
389
  serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
390
+ serde-json-core,https://github.com/rust-embedded-community/serde-json-core,MIT OR Apache-2.0,"Jorge Aparicio <jorge@japaric.io>, Ryan Summers <ryan.summers@vertigo-designs.com>, Robert Jördens <rj@quartiq.de>, Mathias Koch <mk@factbird.com>"
380
391
  serde-transcode,https://github.com/sfackler/serde-transcode,MIT OR Apache-2.0,Steven Fackler <sfackler@palantir.com>
381
392
  serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
382
393
  serde_core,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
@@ -1700,6 +1700,25 @@ typedef enum ddog_TraceExporterErrorCode {
1700
1700
  DDOG_TRACE_EXPORTER_ERROR_CODE_PANIC,
1701
1701
  } ddog_TraceExporterErrorCode;
1702
1702
 
1703
+ /**
1704
+ * TraceExporterInputFormat represents the format of the input traces.
1705
+ * The input format can be either Proxy or V0.4, where V0.4 is the default.
1706
+ */
1707
+ typedef enum ddog_TraceExporterInputFormat {
1708
+ DDOG_TRACE_EXPORTER_INPUT_FORMAT_V04,
1709
+ DDOG_TRACE_EXPORTER_INPUT_FORMAT_V05,
1710
+ } ddog_TraceExporterInputFormat;
1711
+
1712
+ /**
1713
+ * TraceExporterOutputFormat represents the format of the output traces.
1714
+ * The output format can be either V0.4 or v0.5, where V0.4 is the default.
1715
+ */
1716
+ typedef enum ddog_TraceExporterOutputFormat {
1717
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V04,
1718
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V05,
1719
+ DDOG_TRACE_EXPORTER_OUTPUT_FORMAT_V1,
1720
+ } ddog_TraceExporterOutputFormat;
1721
+
1703
1722
  /**
1704
1723
  * Structure containing the agent response to a trace payload
1705
1724
  * MUST be freed with `ddog_trace_exporter_response_free`
@@ -1719,6 +1738,8 @@ typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1719
1738
  */
1720
1739
  typedef struct ddog_ForkSafeRuntime ddog_ForkSafeRuntime;
1721
1740
 
1741
+ typedef struct ddog_TraceExporterBuilder_ForkSafeRuntime ddog_TraceExporterBuilder_ForkSafeRuntime;
1742
+
1722
1743
  /**
1723
1744
  * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
1724
1745
  * Once the configuration is passed to the TraceExporter constructor the config is no longer
@@ -1849,6 +1870,74 @@ typedef struct ddog_CardinalityLimitConfig {
1849
1870
  uintptr_t additional_tags_limit;
1850
1871
  } ddog_CardinalityLimitConfig;
1851
1872
 
1873
+ /**
1874
+ * FFI-compatible mirror of the Rust `TelemetryConfig`: the two fields consumed by
1875
+ * [`ddog_trace_exporter_builder_enable_telemetry`]. Session identifiers are configured
1876
+ * separately via `ddog_trace_exporter_builder_set_telemetry_instrumentation_sessions`.
1877
+ */
1878
+ typedef struct ddog_ExporterTelemetryConfig {
1879
+ /**
1880
+ * How often telemetry should be sent, in milliseconds.
1881
+ */
1882
+ uint64_t heartbeat;
1883
+ /**
1884
+ * Whether to enable debug mode for telemetry.
1885
+ * When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
1886
+ * Defaults to false.
1887
+ */
1888
+ bool debug_enabled;
1889
+ } ddog_ExporterTelemetryConfig;
1890
+
1891
+ /**
1892
+ * A borrowed list of tag strings for builder setters that take a `Vec<String>`
1893
+ * (tracer tags, peer tags, metric tag keys).
1894
+ *
1895
+ * `ptr` may be null only when `len` is 0; a non-zero `len` with a null `ptr` is rejected.
1896
+ * An empty list clears the corresponding builder field.
1897
+ */
1898
+ typedef struct ddog_ExporterTagList {
1899
+ /**
1900
+ * Pointer to the first `ddog_CharSlice`.
1901
+ */
1902
+ const ddog_CharSlice *ptr;
1903
+ /**
1904
+ * Number of elements.
1905
+ */
1906
+ uintptr_t len;
1907
+ } ddog_ExporterTagList;
1908
+
1909
+ /**
1910
+ * A borrowed HTTP header name/value pair.
1911
+ */
1912
+ typedef struct ddog_ExporterHeader {
1913
+ /**
1914
+ * Header name.
1915
+ */
1916
+ ddog_CharSlice name;
1917
+ /**
1918
+ * Header value.
1919
+ */
1920
+ ddog_CharSlice value;
1921
+ } ddog_ExporterHeader;
1922
+
1923
+ /**
1924
+ * A borrowed list of [`ExporterHeader`] pairs for builder setters that take a
1925
+ * `Vec<(String, String)>` (OTLP headers).
1926
+ *
1927
+ * `ptr` may be null only when `len` is 0; a non-zero `len` with a null `ptr` is rejected.
1928
+ * An empty list clears the corresponding builder field.
1929
+ */
1930
+ typedef struct ddog_ExporterHeaderList {
1931
+ /**
1932
+ * Pointer to the first `ddog_ExporterHeader`.
1933
+ */
1934
+ const struct ddog_ExporterHeader *ptr;
1935
+ /**
1936
+ * Number of elements.
1937
+ */
1938
+ uintptr_t len;
1939
+ } ddog_ExporterHeaderList;
1940
+
1852
1941
  /**
1853
1942
  * FFI-safe bundle of scalar fields for creating a [`TracerSpan`].
1854
1943
  *
@@ -2527,12 +2616,37 @@ typedef enum ddog_SharedRuntimeErrorCode {
2527
2616
  * Shutdown timed out.
2528
2617
  */
2529
2618
  DDOG_SHARED_RUNTIME_ERROR_CODE_SHUTDOWN_TIMED_OUT,
2619
+ /**
2620
+ * The worker has already been stopped.
2621
+ */
2622
+ DDOG_SHARED_RUNTIME_ERROR_CODE_WORKER_STOPPED,
2623
+ /**
2624
+ * The worker was dropped before completing the flush.
2625
+ */
2626
+ DDOG_SHARED_RUNTIME_ERROR_CODE_FLUSH_ABORTED,
2627
+ /**
2628
+ * The flush did not complete before the timeout.
2629
+ */
2630
+ DDOG_SHARED_RUNTIME_ERROR_CODE_FLUSH_TIMED_OUT,
2530
2631
  /**
2531
2632
  * An unexpected panic occurred inside the FFI call.
2532
2633
  */
2533
2634
  DDOG_SHARED_RUNTIME_ERROR_CODE_PANIC,
2534
2635
  } ddog_SharedRuntimeErrorCode;
2535
2636
 
2637
+ /**
2638
+ * Handle to a worker registered on a [`SharedRuntime`].
2639
+ *
2640
+ * This handle can be used to stop the worker.
2641
+ *
2642
+ * # Warning
2643
+ * If every clone of this handle is dropped without calling [`WorkerHandle::stop`], the worker
2644
+ * remains registered on the [`SharedRuntime`] and can only be torn down by shutting the
2645
+ * runtime down. Workers are expected to detect that their input channel has been closed and
2646
+ * park themselves to avoid spinning, but they will not be freed until the runtime stops.
2647
+ */
2648
+ typedef struct ddog_WorkerHandle ddog_WorkerHandle;
2649
+
2536
2650
  /**
2537
2651
  * Error returned by ForkSafeRuntime FFI functions.
2538
2652
  */
@@ -2757,6 +2871,11 @@ typedef struct ddog_crasht_Config {
2757
2871
  * (not just the crashing thread) using ptrace-based remote unwinding.
2758
2872
  */
2759
2873
  bool collect_all_threads;
2874
+ /**
2875
+ * If true, the collector will read OTel thread-level context (trace_id, span_id, etc.) from
2876
+ * each thread's TLS and include them in the crash report under `experimental`.
2877
+ */
2878
+ bool collect_otel_thread_contexts;
2760
2879
  bool create_alt_stack;
2761
2880
  bool demangle_names;
2762
2881
  /**