<!--
{
  "availability" : [
    "macOS: 14.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "System",
  "identifier" : "/documentation/System/Mach/Port/relinquish()-70vbe",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "System"
    ],
    "preciseIdentifier" : "s:6System4MachO4PortVAaC12ReceiveRightVRszrlE10relinquishs6UInt32V4name_s6UInt64V7contexttyF"
  },
  "title" : "relinquish()"
}
-->

# relinquish()

Transfer ownership of the underlying port right to the caller.

```
consuming func relinquish() -> (name: mach_port_name_t, context: mach_port_context_t)
```

## Discussion

Returns a tuple containing the Mach port name representing the right,
and the context value used to guard the right.

This operation liberates the right from management by the Mach.Port,
and the underlying right will no longer be automatically deallocated.

After this function completes, the Mach.Port is destroyed and no longer
usable.

---

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)