| 139 | } |
| 140 | |
| 141 | ~Impl() override { |
| 142 | inbox.close(); |
| 143 | reader.close(); |
| 144 | writer.close(); |
| 145 | if (recvThread.joinable()) { |
| 146 | recvThread.join(); |
| 147 | } |
| 148 | if (dispatchThread.joinable()) { |
| 149 | dispatchThread.join(); |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | private: |
| 154 | using Payload = std::function<void()>; |