Hi,
The RabbitMQClient library uses long running tasks without marking them as "long running".
Is it possible to get them changed?
For example is it possible to change
_mainLoopTask = Task.Run(MainLoop);
to
_mainLoopTask = Task.Factory.StartNew(MainLoop, TaskCreationOptions.LongRunning);
As you might know, the CoreCLR in Linux uses the PortableThreadPool to dispatch data received via asynchronous IO compared to IOCP threads on Windows. Having
unmarked
long running tasks interferes with the heuristics used by the
PortableThreadPool and delays the expansion of the thread pool due to late detection of low throughput. Practical impact of this is the regular health probe failures of services running Kestrel.
Many thanks,
Dharshana.