-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mqtt changes #660
Mqtt changes #660
Conversation
d207270
to
24d2c19
Compare
Setting CompletedSynchronously everywhere
Add logs for amqp ws tpm
AMQP - handle sync completion
Add client side tracing to the TPM over AMQP/WS scenario
@@ -21,6 +21,11 @@ namespace Microsoft.Azure.Devices.Client.Transport.Mqtt | |||
using Microsoft.Azure.Devices.Client.Extensions; | |||
using System.Diagnostics; | |||
|
|||
// | |||
// Note on ConfigureAwait: dotNetty is using a custom TaskScheduler that binds Tasks to the corresponding | |||
// EventLoopGroup. To limit I/O to the EventLoopGroup and keep Netty semantics, we are going to ensure that the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
replace EventLoopGroup with EventLoop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in a personal branch that will be pushed soon for both DeviceClient and ProvisioningClient comments.
() => new MultithreadEventLoopGroup(eg => new SingleThreadEventLoop(eg, "MQTTExecutionThread", TimeSpan.FromSeconds(1)), 1), | ||
TimeSpan.FromSeconds(5), | ||
elg => elg.ShutdownGracefullyAsync()); | ||
private static MultithreadEventLoopGroup s_eventLoopGroup = new MultithreadEventLoopGroup(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Be aware that this will start Environment.ProcessorCount * 2
number of threads immediately. Not sure if there is a concern with this on smaller devices.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll leave it as-is for now: In a future SDK version we should expose the handler and the detailed configuration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added as comments.
* Merge pull request Azure#66 from Azure/alextolp/setcompletedsync Setting CompletedSynchronously everywhere * Provisioning MQTT transport using the ExecutorTaskScheduler. * Device MQTT transport using the ExecutorTaskScheduler. * Removing ConcurrentObjectPool. * Merge pull request Azure#63 from Azure/ravokkar/tpmamqpws-tracing Add client side tracing to the TPM over AMQP/WS scenario * Merge pull request Azure#64 from Azure/alextolp/amqpsyncfix AMQP - handle sync completion * Merge pull request Azure#65 from Azure/alextolp/amqpwsaddlogs Add logs for amqp ws tpm * Fixing synchronous completions for AMQP. * Adding test execution note. * Changing build order of netfx.
Checklist
master
branch.Description of the changes
Reference/Link to the issue solved with this PR (if any)
Fixes #552