Skip to content
This repository has been archived by the owner on May 1, 2020. It is now read-only.

Support for concurrent message processing #23

Closed
KernelPryanic opened this issue May 15, 2018 · 1 comment
Closed

Support for concurrent message processing #23

KernelPryanic opened this issue May 15, 2018 · 1 comment
Labels
feature request A server feature request, suggestion or proposal
Milestone

Comments

@KernelPryanic
Copy link
Collaborator

Currently the server does handle multiple connections concurrently but it processes the messages sequentially. Requests and signals of a single client are always processed in the goroutine handling that particular client, this could turn out critical, because even if we spawn goroutines manually in the OnRequest handler for example - we'd still block other requests when waiting for the blocking one to return a response. It'd therefore make sense to move the processing of messages into separate goroutines and ideally make this feature optional by providing a server option for disabling concurrent message processing.

@romshark romshark added this to the v1.1.0 milestone Jun 2, 2018
@romshark
Copy link
Owner

romshark commented Jun 26, 2018

As of commit #d6105e9 messages are parsed and handled concurrently and throttled at a configured maximum number.

The server options now provide a new option: MaxConcurrentHandlers which disables throttling when set to 0 and otherwise throttles the number of concurrently executed handlers (from all connected clients) at the specified maximum number.

@romshark romshark added feature request A server feature request, suggestion or proposal and removed feature request labels Aug 7, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature request A server feature request, suggestion or proposal
Projects
None yet
Development

No branches or pull requests

2 participants