You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jim Gomes (JIRA)" <ji...@apache.org> on 2008/02/13 01:32:36 UTC

[jira] Closed: (AMQNET-50) Disposable objects should follow standard disposable implementation pattern

     [ https://issues.apache.org/activemq/browse/AMQNET-50?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Gomes closed AMQNET-50.
---------------------------

    Resolution: Fixed

> Disposable objects should follow standard disposable implementation pattern
> ---------------------------------------------------------------------------
>
>                 Key: AMQNET-50
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-50
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ Client
>         Environment: Windows XP SP2, .NET 2.0
>            Reporter: Jim Gomes
>            Assignee: James Strachan
>            Priority: Minor
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> Objects that implement the IDispose interface and have unmanaged resources should use the dispose pattern that uses an internal method to dispose of the objects and then turns off the finalizer call from the garbage collector.  This allows for safe and efficient disposable of unmanaged resources.
> The following objects implement the IDisposable interface and have attachments to unmanaged resources.  
> ActiveMQ.Connection
> ActiveMQ.Session
> ActiveMQ.MessageProducer
> ActiveMQ.MessageConsumer
> The basic pattern is as follows:
> class Disposable : public IDispose
> {
>     private bool disposed = false;
>     ~Disposable()
>     {
>         Dispose(false);
>     }
>     public void Dispose()
>     {
>         Dispose(true);
>         GC.SuppressFinalize(this);
>     }
>     protected void Dispose(bool disposing)
>     {
>         if(disposed)
>         {
>             return;
>         }
>         if(disposing)
>         {
>             // Dispose managed code here
>         }
>         // Dispose unmanaged code here
>         disposed = true;
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.