)]}'
{
  "commit": "695aa7c2bc43b4eb8248dd3a0e2652e1e88129e7",
  "tree": "c5974da3d2e50d5b5f6d796e6039f5ff0365af1a",
  "parents": [
    "fde1f8d625b51484f7e72777151d4fb624b6976b"
  ],
  "author": {
    "name": "Bryce Arden",
    "email": "arden.bryce@gmail.com",
    "time": "Thu Apr 30 10:57:04 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 30 17:57:04 2026 +0000"
  },
  "message": "sdk: Add track_event_buf_exhausted_policy to TracingInitArgs (#5409)\n\nAdd a track_event_buffer_exhausted_policy field to TracingInitArgs,\nallowing apps to set the buffer exhausted policy (drop vs stall)\nfor TrackEvent at initialization time.\n\nThe value is stashed in TrackEventInternal static state during\nTracing::Initialize() and read during TrackEvent::Register(),\nfollowing the same pattern as use_monotonic_clock and\ndisallow_merging_with_system_tracks. A protected Register(dsd,\nparams) overload on DataSource allows TrackEventDataSource to\ninject custom DataSourceParams without intermediate storage.\n\nTrackEvent is used in critical system services (e.g.,\nsystem_server) where an accidental kStall policy could cause a\ndevice soft-reboot. Plumbing through TracingInitArgs removes\nordering ambiguity (Initialize always precedes Register) and\navoids redundant state in DataSourceType. See\nhttps://github.com/google/perfetto/pull/1312 and\nb/384007571.\n\nI don\u0027t have a use-case for also allowing track_event_buf_exhaust_policy\nto be configurable.\nFor now, making a hard-choice when we initialize the process is ok.\nIf we need configurabilty, the extension points are natural; we can\nfollow footsteps of this PR.\n\ncc: @dreveman",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6a0a12bba8f1bdefc37df0d5c55f53e5c1cd966d",
      "old_mode": 33188,
      "old_path": "include/perfetto/tracing/data_source.h",
      "new_id": "1b8b91c52c2fcf6b4fdb0c2be4be9b08f799d6bc",
      "new_mode": 33188,
      "new_path": "include/perfetto/tracing/data_source.h"
    },
    {
      "type": "modify",
      "old_id": "a4c1f65c93b71b32352116e3c225231e233f6ca9",
      "old_mode": 33188,
      "old_path": "include/perfetto/tracing/internal/track_event_data_source.h",
      "new_id": "26463746184df08dae9e42b405bf462aa7495882",
      "new_mode": 33188,
      "new_path": "include/perfetto/tracing/internal/track_event_data_source.h"
    },
    {
      "type": "modify",
      "old_id": "c6207aa1d6a68820753c362394687bab60f1dc5b",
      "old_mode": 33188,
      "old_path": "include/perfetto/tracing/internal/track_event_internal.h",
      "new_id": "b8e985436dfcc0ddded42fdc86e3e1c28d846c84",
      "new_mode": 33188,
      "new_path": "include/perfetto/tracing/internal/track_event_internal.h"
    },
    {
      "type": "modify",
      "old_id": "a395f210a10c2c41979d26111cf6f8d68744f65a",
      "old_mode": 33188,
      "old_path": "include/perfetto/tracing/tracing.h",
      "new_id": "5f5eff096f2b1a08fccc413b9122e6a17823e02a",
      "new_mode": 33188,
      "new_path": "include/perfetto/tracing/tracing.h"
    },
    {
      "type": "modify",
      "old_id": "234bf2fba3024e3385a33813cd147c13d4e051db",
      "old_mode": 33188,
      "old_path": "src/tracing/internal/track_event_internal.cc",
      "new_id": "eda10503c4e5b96f09c0ac28afcd8c4a473d0e4f",
      "new_mode": 33188,
      "new_path": "src/tracing/internal/track_event_internal.cc"
    },
    {
      "type": "modify",
      "old_id": "b2a99f7a9a8fda7b234e161c53f0e879228e2fb8",
      "old_mode": 33188,
      "old_path": "src/tracing/test/api_integrationtest.cc",
      "new_id": "cf943f10bf3fc011b24bcf0a3670ad54dc349982",
      "new_mode": 33188,
      "new_path": "src/tracing/test/api_integrationtest.cc"
    },
    {
      "type": "modify",
      "old_id": "dfcc44ab15cc80a7edf2904145ff53b19cc8213a",
      "old_mode": 33188,
      "old_path": "src/tracing/tracing.cc",
      "new_id": "0e30dca4f495f491ead4ef3337aeb4916f846d51",
      "new_mode": 33188,
      "new_path": "src/tracing/tracing.cc"
    }
  ]
}
