---
title: OSSignpostID
framework: os
role: symbol
role_heading: Structure
path: os/ossignpostid
---

# OSSignpostID

An identifier that disambiguates signposted intervals.

## Declaration

```swift
struct OSSignpostID
```

## Mentioned in

Recording Performance Data

## Overview

Overview Multiple intervals that have matching names, subsystems, and categories, and that exist in the same scope can be in-flight simultaneously. To match a pair of interval calls, 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 identical intervals can never overlap, use the exclusive signpost ID. If you have data that uniquely identifies each instance of the measured task, create a signpost ID using the init(_:) method. The value you provide must not match that of any of the system-defined signpost IDs. If you have an object that uniquely identifies a pair of interval calls, such as the object you’re measuring, create a signpost ID using the makeSignpostID(from:) method. Don’t use this method for signposts that cross process boundaries. Otherwise, create a signpost ID using the makeSignpostID() method.

## Topics

### Getting Signpost Identifiers

- [exclusive](os/ossignpostid/exclusive.md)
- [invalid](os/ossignpostid/invalid.md)
- [null](os/ossignpostid/null.md)

### Creating a Signpost Identifier

- [init(_:)](os/ossignpostid/init(_:).md)
- [init(log:)](os/ossignpostid/init(log:).md)
- [init(log:object:)](os/ossignpostid/init(log:object:).md)

### Getting an Identifier’s Raw Value

- [rawValue](os/ossignpostid/rawvalue.md)

## Relationships

### Conforms To

- [Comparable](swift/comparable.md)
- [Equatable](swift/equatable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Generating Signpost IDs

- [makeSignpostID()](os/ossignposter/makesignpostid().md)
- [makeSignpostID(from:)](os/ossignposter/makesignpostid(from:).md)
