[ 
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)

Reply via email to