flowchart TD
    A(Need to make two-way FIDL calls?) -->|Yes| B(Do you need to make the FIDL calls during a Linux syscall?)
    B -->|Yes, the FIDL calls serve the syscalls of a Linux program.| C(Synchronous FIDL binding)
    B -->|No, the FIDL calls are not associated with any syscalls.| D(Asynchronous FIDL binding)
    D -->|Default case| E(Spawn a future onto the main thread's executor)
    D -->|Exceptional case| F(Spawn a separate thread that runs its own executor)
    style A fill:#f9f,stroke:#333,stroke-width:4px
    style B fill:#f9f,stroke:#333,stroke-width:4px
    style C fill:#f9f,stroke:#333,stroke-width:4px
    style D fill:#f9f,stroke:#333,stroke-width:4px
    style E fill:#f9f,stroke:#333,stroke-width:4px
    style F fill:#f9f,stroke:#333,stroke-width:4px