[
https://issues.apache.org/jira/browse/PROTON-2830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17854288#comment-17854288
]
Yuriy Lepikhov edited comment on PROTON-2830 at 6/12/24 7:28 AM:
-----------------------------------------------------------------
{quote}If you are unhappy with the free client implementation then you can use
the proton engine to implement a client based off the existing source.
{quote}
I am very happy with free client implementation and very grateful for your work
and for the fact that you respond so quickly.
I just wanted to notice, that there are existing components in dotnet that
might be reused, not a big deal.
Thank you!
was (Author: ylepikhov):
{quote}
If you are unhappy with the free client implementation then you can use the
proton engine to implement a client based off the existing source.
{quote}
I am very happy with free client implementation and very grateful for your work
and for the fact that you respond so quickly.
I just wanted to notice, that there is existing components in dotnet that might
be reused, not a big deal.
Thank you!
> [proton-dotnet] ClientStreamSender lacks async variant of BeginMessage
> ----------------------------------------------------------------------
>
> Key: PROTON-2830
> URL: https://issues.apache.org/jira/browse/PROTON-2830
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-dotnet
> Affects Versions: proton-dotnet-1.0.0-M10
> Reporter: Yuriy Lepikhov
> Assignee: Timothy A. Bish
> Priority: Minor
> Fix For: proton-dotnet-1.0.0-M11
>
>
> ClientStreamSender.BeginMessage is blocking and shouldn't be called in
> EventLoop callback.
> Call of ClientStreamSender.BeginMessage from EventLoop callback leads to
> deadlock.
> For example:
> {code:java}
> using var sender = await
> connection.OpenStreamSenderAsync(address).ConfigureAwait(false);
> // coninuation will be executed in EventLoop callback, but BeginMessage
> publishes event to EventLoop and blocks = deadlock
> var message = sender.BeginMessage(); {code}
> In general it is good idea not to mix sync and async calls, and
> BeginMessageAsync would help in this situation.
>
> Also, is it necessary to introduce new API such as EventLoop whereas
> TaskFactory already exists?
> May be something like this would be useful:
> {code:java}
> ConcurrentExclusiveSchedulerPair concurrentExclusiveSchedulerPair = new
> ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, 1, 1);
> TaskFactory taskFactory = new
> TaskFactory(concurrentExclusiveSchedulerPair.ExclusiveScheduler);
> // ...
> taskFactory.StartNew(...); {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]