<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "os",
  "identifier" : "/documentation/os/os_signpost_id_t",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "os"
    ],
    "preciseIdentifier" : "c:@T@os_signpost_id_t"
  },
  "title" : "os_signpost_id_t"
}
-->

# os_signpost_id_t

An identifier you use to distinguish between signposts that have the same name and destination log.

```
typealias os_signpost_id_t = UInt64
```

## Discussion

Multiple intervals with matching log objects and interval names can be in-flight simultaneously. In order for data-processing tools to correctly match the beginning and end of an interval, you need to identify each interval with a unique signpost identifier. Use the first strategy in the list below that matches your use case:

- If you can guarantee that intervals with the same log and name can never overlap in time, specify [`OS_SIGNPOST_ID_EXCLUSIVE`](/documentation/os/OS_SIGNPOST_ID_EXCLUSIVE) as the signpost ID.
- If you already have your own integer data that can uniquely identify each instance of the task being measured, cast the data from a <doc://com.apple.documentation/documentation/kernel/uint64_t> value directly to a `os_signpost_id_t`. The value must not match one of the predefined signpost values.
- If you have a pointer that can uniquely identify begin/end pairs (such as a pointer to a data object used by the code being measured), call [`os_signpost_id_make_with_pointer`](/documentation/os/os_signpost_id_make_with_pointer). Don’t use this function for signposts that span process boundaries.
- Otherwise, call [`os_signpost_id_generate`](/documentation/os/os_signpost_id_generate) each time you create a new pair of signposts to generate a unique value for that pair.

## Topics

### Creating a Signpost Identifier

[`os_signpost_id_generate`](/documentation/os/os_signpost_id_generate)

Creates a signpost identifier that’s unique among signposts logged to a specified log.

[`os_signpost_id_make_with_pointer`](/documentation/os/os_signpost_id_make_with_pointer)

Creates a signpost identifier that’s unique among signposts logging to the specified log, using a pointer value to generate the unique value.

### Using Built-in Signpost Identifiers

[`OS_SIGNPOST_ID_EXCLUSIVE`](/documentation/os/OS_SIGNPOST_ID_EXCLUSIVE)

A signpost identifier that indicates no overlap among different signpost time intervals.

[`OS_SIGNPOST_ID_INVALID`](/documentation/os/OS_SIGNPOST_ID_INVALID)

A signpost identifier that indicates an error.

[`OS_SIGNPOST_ID_NULL`](/documentation/os/OS_SIGNPOST_ID_NULL)

The signpost identifier that represents a disabled signpost.

### Supporting Types

[`OS_SIGNPOST_TYPE_MASK`](/documentation/os/OS_SIGNPOST_TYPE_MASK)

A value the system uses to create built-in signpost identifiers; don’t use directly.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)