# Isolated consuming argument

**URL:** <https://forums.swift.org/t/isolated-consuming-argument/72649>\
**Category:** Using Swift\
**Tags:** ownership, concurrency\
**Created:** [June 21, 2024, 11:55am UTC](https://forums.swift.org/t/isolated-consuming-argument/72649 "2024-06-21T11:55:13Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nickolas\_Pohilets](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/nickolas_pohilets/32/10659_2.png) [@Nickolas\_Pohilets](https://forums.swift.org/u/Nickolas_Pohilets)\
**Post date:** [June 21, 2024, 11:55am UTC](https://forums.swift.org/t/isolated-consuming-argument/72649/1 "2024-06-21T11:55:13Z")

</div>

I'm seeing a weird error when trying to use `isolated` and `consuming` together.

This compiles fine:

```swift
protocol UsableActor: Actor {
  borrowing func useIt()
}

func keepBusy<T: UsableActor>(_ actor: consuming isolated T) {
  actor.useIt()
}

```

But marking function as async produces an error:

```swift
protocol UsableActor: Actor {
  borrowing func useIt()
}

func keepBusy<T: UsableActor>(_ actor: consuming isolated T) async {
// | `- error: 'actor' used after consume
// `- note: consumed here
   actor.useIt()
// `- note: used here
}

```

Looks like hopping to the `actor` consumes it. I'm not sure if it makes sense. Is this a bug?
