[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) › createMutexRef

```ts
function createMutexRef<T>(initialValue: T): MutexRef<T>;
```

Defined in: [packages/common/src/Task.ts:6199](https://github.com/evoluhq/evolu/blob/dd96d79f1dbe9a49fa12ce8e0aa7d3d0177795ca/packages/common/src/Task.ts#L6199)

Creates a [MutexRef](https://evolu.dev/docs/api-reference/common/Task/interfaces/MutexRef).

### Example

```ts

const counter = createMutexRef(0);
const increment = counter.updateAndGet((value) => () => ok(value + 1));

await using run = createRun();
assertOk(await run(increment), 1);
assertOk(await run(counter.get), 1);
```