neoneo-go/pkg/services
Leonard Lyubich f8227aa5f7 services/rpcsrv: Fix potential shutdown deadlock of RPC server
Previously RPC server could never be shut down completely due to
some start precondition failure (in particular, inability to serve HTTP
on any configured endpoint). The problem was caused by next facts:
 * start method ran subscription routine after HTTP init succeeded only
 * stop method blocked waiting for the subscription routine to return

Run `handleSubEvents` routine on fresh `Start` unconditionally. With
this change, `Shutdown` method won't produce deadlock since
`handleSubEvents` closes wait channel.

Refs #2896.

Signed-off-by: Leonard Lyubich <leonard@morphbits.io>
2023-08-01 17:27:11 +03:00
..
helpers/rpcbroadcaster rpc/client: move to pkg/rpcclient 2022-07-21 22:39:53 +03:00
metrics services: allow multiple listen addresses for simple services 2022-12-07 11:23:01 +03:00
notary services: use buffered channels for block subscription 2023-03-15 17:37:47 +03:00
oracle *: add nolint comments to multiple errors wrapping 2023-03-15 16:38:01 +03:00
rpcsrv services/rpcsrv: Fix potential shutdown deadlock of RPC server 2023-08-01 17:27:11 +03:00
stateroot services: use buffered channels for block subscription 2023-03-15 17:37:47 +03:00