summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Sender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Sender.cpp')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Sender.cpp22
1 files changed, 9 insertions, 13 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Sender.cpp b/cpp/bindings/qpid/dotnet/src/Sender.cpp
index a051026e71..584075ef5f 100644
--- a/cpp/bindings/qpid/dotnet/src/Sender.cpp
+++ b/cpp/bindings/qpid/dotnet/src/Sender.cpp
@@ -67,16 +67,23 @@ namespace Messaging {
// Destructor
Sender::~Sender()
{
- Cleanup();
+ this->!Sender();
}
// Finalizer
Sender::!Sender()
{
- Cleanup();
+ msclr::lock lk(this);
+
+ if (NULL != senderp)
+ {
+ delete senderp;
+ senderp = NULL;
+ }
}
+
// Copy constructor
Sender::Sender(const Sender ^ sender)
: parentSession(sender->parentSession)
@@ -101,17 +108,6 @@ namespace Messaging {
}
- // Destroys kept object
- // TODO: add lock
- void Sender::Cleanup()
- {
- if (NULL != senderp)
- {
- delete senderp;
- senderp = NULL;
- }
- }
-
//
// Send(msg)
//