[
https://issues.apache.org/jira/browse/AMQNET-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
JEFF ANDERSON updated AMQNET-649:
---------------------------------
Description: Although the 1.7.2 release of the AMQ .net client uses the
DedicatedTaskRunner runner by default. We compile from source and use
PooledTaskRunner.cs for performance reasons. However this code has some bugs.
Namely the Shutdown() method will deadlock on a call to Thread.Sleep with
infinite timespan. If you look at the Java source for PooledTaskRunner, it
looks like the C# port is missing the thread synchronization logic that the
Java implementation had. I've attached a version which corrects this and makes
it in-line with the Java implementation and corrects the logic in Shutdown
which needs to be a synchronized wait (e.g., Monitor.Wait()) (was: Although
the 1.7.2 release of the AMQ .net client uses the DedicatedTaskRunner runner by
default. We compile from source and use PooledTaskRunner.cs for performance
reasons. However this code has some bugs. Namely the Shutdown() method will
deadlock on a call to Thread.Sleep with infinite timespan. If you look at the
Java source for PooledTaskRunner, it looks like the C# port is missing the
thread synchronization logic that the Java implementation had. I've attached a
version which corrects this and makes it in-line with the Java implementation.)
> bugs in PooledTaskRunner.cs
> ---------------------------
>
> Key: AMQNET-649
> URL: https://issues.apache.org/jira/browse/AMQNET-649
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: ActiveMQ
> Affects Versions: 1.7.2
> Reporter: JEFF ANDERSON
> Priority: Major
> Attachments: PooledTaskRunner.cs
>
>
> Although the 1.7.2 release of the AMQ .net client uses the
> DedicatedTaskRunner runner by default. We compile from source and use
> PooledTaskRunner.cs for performance reasons. However this code has some bugs.
> Namely the Shutdown() method will deadlock on a call to Thread.Sleep with
> infinite timespan. If you look at the Java source for PooledTaskRunner, it
> looks like the C# port is missing the thread synchronization logic that the
> Java implementation had. I've attached a version which corrects this and
> makes it in-line with the Java implementation and corrects the logic in
> Shutdown which needs to be a synchronized wait (e.g., Monitor.Wait())
--
This message was sent by Atlassian Jira
(v8.3.4#803005)