neoneo-go/pkg/services/rpcsrv
Anna Shaleva b7f19a54d5 services: fix chain locked by WS subscriptions handlers
Blockchain's subscriptions, unsubscriptions and notifications are
handled by a single notificationDispatcher routine. Thus, on attempt
to send the subsequent event to Blockchain's subscribers, dispatcher
can't handle subscriptions\unsubscriptions. Make subscription and
unsubscription to be a non-blocking operation for blockchain on the
server side, otherwise it may cause the dispatcher locks.

To achieve this, use a separate lock for those code that make calls
to blockchain's subscription API and for subscription counters on
the server side.
2022-11-18 09:30:12 +03:00
..
params rpc: merge response and request under pkg/neorpc 2022-07-25 11:57:53 +03:00
testdata rpcclient: fix WS-client unsubscription process 2022-11-16 23:44:30 +03:00
client_test.go services: adjust WS waiter test 2022-11-17 17:15:01 +03:00
error.go rpc: merge response and request under pkg/neorpc 2022-07-25 11:57:53 +03:00
prometheus.go rpcsrv: provide Prometheus histograms for calls 2022-11-09 13:26:45 +03:00
server.go services: fix chain locked by WS subscriptions handlers 2022-11-18 09:30:12 +03:00
server_helper_test.go rpc/server: move to services/rpcsrv 2022-07-21 22:14:12 +03:00
server_test.go rpcclient: fix WS-client unsubscription process 2022-11-16 23:44:30 +03:00
subscription.go rpc: support multiple WSClient notification receivers 2022-10-24 06:09:36 +03:00
subscription_test.go rpcclient: fix WS-client unsubscription process 2022-11-16 23:44:30 +03:00
tokens.go rpc: merge response and request under pkg/neorpc 2022-07-25 11:57:53 +03:00
util.go rpc/server: move to services/rpcsrv 2022-07-21 22:14:12 +03:00