mirror of
https://github.com/Icinga/icinga2.git
synced 2026-02-20 00:10:29 -05:00
When the `Desconnect()` method is called, clients are not disconnected immediately. Instead, a new coroutine is spawned using the same strand as the other coroutines. This coroutine calls `async_shutdown` on the TCP socket, which might be blocking. However, in order not to block indefintely, the `Timeout` class cancels all operations on the socket after `10` seconds. Though, the timeout does not trigger the handler immediately; it creates spawns another coroutine using the same strand as in the `JsonRpcConnection` class. This can cause unexpected delays if e.g. `HandleIncomingMessages` gets resumed before the coroutine from the timeout class. Apart from that, the coroutine for writing messages uses the same condition, making the two symmetrical. |
||
|---|---|---|
| .. | ||
| base | ||
| checker | ||
| cli | ||
| compat | ||
| config | ||
| db_ido | ||
| db_ido_mysql | ||
| db_ido_pgsql | ||
| icinga | ||
| icingadb | ||
| livestatus | ||
| methods | ||
| mysql_shim | ||
| notification | ||
| perfdata | ||
| pgsql_shim | ||
| remote | ||
| CMakeLists.txt | ||