Mercurial > hg > orthanc-python
changeset 325:669914eab130
cont finalization
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Tue, 07 Apr 2026 15:41:27 +0200 |
| parents | d8c06c9408c2 |
| children | da7716334dac 95fdc00a09d3 |
| files | Sources/OnChangeCallback.cpp Sources/StorageArea.cpp Sources/StorageArea3.cpp |
| diffstat | 3 files changed, 21 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Sources/OnChangeCallback.cpp Tue Apr 07 15:27:07 2026 +0200 +++ b/Sources/OnChangeCallback.cpp Tue Apr 07 15:41:27 2026 +0200 @@ -91,8 +91,7 @@ boost::condition_variable elementAvailable_; boost::condition_variable emptied_; -public: - ~PendingChanges() + void ClearInternal() { for (Queue::iterator it = queue_.begin(); it != queue_.end(); ++it) { @@ -100,6 +99,12 @@ delete *it; } } + +public: + ~PendingChanges() + { + ClearInternal(); + } void Enqueue(OrthancPluginChangeType changeType, OrthancPluginResourceType resourceType, @@ -150,6 +155,12 @@ emptied_.wait(lock); } } + + void Clear() + { + boost::mutex::scoped_lock lock(mutex_); + ClearInternal(); + } }; @@ -263,4 +274,6 @@ { StopThread(); ICallbackRegistration::Unregister(changesCallback_); + + pendingChanges_.Clear(); }
--- a/Sources/StorageArea.cpp Tue Apr 07 15:27:07 2026 +0200 +++ b/Sources/StorageArea.cpp Tue Apr 07 15:41:27 2026 +0200 @@ -238,15 +238,18 @@ if (createCallback_ != NULL) { Py_XDECREF(createCallback_); + createCallback_ = NULL; } if (readCallback_ != NULL) { Py_XDECREF(readCallback_); + readCallback_ = NULL; } if (removeCallback_ != NULL) { Py_XDECREF(removeCallback_); + removeCallback_ = NULL; } }
--- a/Sources/StorageArea3.cpp Tue Apr 07 15:27:07 2026 +0200 +++ b/Sources/StorageArea3.cpp Tue Apr 07 15:41:27 2026 +0200 @@ -363,16 +363,19 @@ if (createCallback2_ != NULL) { Py_XDECREF(createCallback2_); + createCallback2_ = NULL; } if (readCallback2_ != NULL) { Py_XDECREF(readCallback2_); + readCallback2_ = NULL; } if (removeCallback2_ != NULL) { Py_XDECREF(removeCallback2_); + removeCallback2_ = NULL; } }
