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