[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Task](https://evolu.dev/docs/api-reference/common/Task) › LeaderLock

Defined in: [packages/common/src/Task.ts:2933](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2933)

Cross-platform leader lock abstraction.

`lock` returns a [Task](https://evolu.dev/docs/api-reference/common/Task/type-aliases/Task) that waits until leadership is acquired and
yields a lease.

Returns [AsyncDisposable](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management) lease. Dispose it to release leadership.

## Properties

<a id="lock"></a>

### lock

```ts
readonly lock: (name: string & Brand<"UrlSafeString"> & Brand<"Name">) => Task<AsyncDisposable>;
```

Defined in: [packages/common/src/Task.ts:2934](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Task.ts#L2934)