# Libtmux_eio.Workspace.await

**Workspace Manager concept example** A working example of the core library. It can change without notice.

- **Module:** Libtmux_eio
- **Package:** libtmux-eio
- **Language:** OCaml
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-ocaml/blob/205dfda49742592b479247049d186956e4a4cfe9/eio/libtmux_eio.mli#L626
- **Public owner:** Libtmux_eio
- **Page:** https://libtmux.org/en/ocaml/latest/workspace/reference/libtmux_eio-workspace-await/

```
val await :
  ?compensate_on_failure:bool ->
  t -> (Libtmux_workspace.Execution.receipt, Libtmux.Error.t) result
```

Apply steps at most once per execution handle. Expected failures return a retained journal. On initial application, `compensate_on_failure` defaults to `true`, attempting removal of proven newly created panes after failure or cancellation. Passing `false` skips that compensation. Eio cancellation propagates after progress is recorded and at most 500 ms of protected compensation. Admitted commands can still complete under client ownership; use [`inspect`](/en/ocaml/latest/workspace/reference/libtmux_eio-workspace-inspect/) before manual recovery.

## Parameters

- `compensate_on_failure?` (`bool`)
- `arg1` (`t`)

## In other ports

Build a session from a workspace description

| Language | Equivalent |
| --- | --- |
| Python | [`tmuxp.workspace.builder.ClassicWorkspaceBuilder.build`](/en/py/latest/workspace/reference/tmuxp-workspace-builder-classicworkspacebuilder-build/) (method) |
| Ruby | [`LibTmux::Workspace::Plan#apply`](/en/ruby/latest/workspace/reference/libtmux-workspace-plan-apply/) (method) |
| PowerShell | [`LibTmux.Workspace\Invoke-TmuxWorkspace`](/en/powershell/latest/workspace/reference/libtmux-workspace-invoke-tmuxworkspace/) (cmdlet). Applies the exact reviewed [`-Plan`](/en/powershell/latest/workspace/reference/libtmux-workspace-invoke-tmuxworkspace/#LibTmux.Workspace%5CInvoke-TmuxWorkspace.parameter.Plan) after PowerShell confirmation. [`-WhatIf`](/en/powershell/latest/workspace/reference/libtmux-workspace-invoke-tmuxworkspace/#LibTmux.Workspace%5CInvoke-TmuxWorkspace.parameter.WhatIf) previews without applying it; application is detached. |
| Julia | [`LibTmuxWorkspace.apply`](/en/julia/latest/workspace/reference/libtmuxworkspace-apply/) (function). Applies a prepared `WorkspacePlan` on an explicit `Server`, detached and under one deadline. Existing session names fail unless reuse is explicit. |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| Common Lisp | [`libtmux.workspace:apply-workspace`](/en/lisp/latest/workspace/reference/libtmux-workspace-apply-workspace/) (function) |
| TypeScript | [`builder.applyWorkspace`](/en/ts/latest/workspace/reference/builder-applyworkspace/) (function) |
| Rust | [`src.WorkspaceBuilder.build`](/en/rs/latest/workspace/reference/src-workspacebuilder-build/) (method) |
| Go | [`workspace.Build`](/en/go/latest/workspace/reference/workspace-build/) (function) |
| Java | [`io.github.libtmux.workspace.WorkspaceBuilder.build`](/en/java/latest/workspace/reference/io-github-libtmux-workspace-workspacebuilder-workspacebuilder-build/) (method) |
| C# | [`LibTmux.Workspace.WorkspaceBuilder.BuildAsync`](/en/csharp/latest/workspace/reference/libtmux-workspace-workspacebuilder-buildasync/) (method) |
| C++ | [`libtmux::workspace::build`](/en/cxx/latest/workspace/reference/libtmux-workspace-build/) (function) |
| Swift | [`WorkspaceBuilder.build(_:on:)`](/en/swift/latest/workspace/reference/workspacebuilder-build(_-on-)/) (method) |
| Perl | [`LibTmux::Workspace::load`](/en/perl/latest/workspace/reference/libtmux-workspace-load/) (method). Loads through installed public core APIs; existing-target policy and known owned rollback effects are explicit. |

No equivalent is recorded in Lua, Erlang, Elixir, Clojure, Kotlin, Scala or F#.
