File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 1
1
v3.8.7 (XXXX-XX-XX)
2
2
-------------------
3
3
4
+ * Fixed a potential hang on shutdown, when there were still document operations
5
+ queued.
6
+
4
7
* No good reason to fatal error in agency state, when local database entries
5
8
lack local timestamp (legacy). In that situation, we will record epoch begin
6
9
as local time.
Original file line number Diff line number Diff line change @@ -1737,9 +1737,16 @@ std::vector<std::shared_ptr<arangodb::LogicalView>> TRI_vocbase_t::views() {
1737
1737
}
1738
1738
1739
1739
void TRI_vocbase_t::processCollectionsOnShutdown (std::function<void (LogicalCollection*)> const & cb) {
1740
- RECURSIVE_WRITE_LOCKER (_dataSourceLock, _dataSourceLockWriteOwner);
1740
+ std::vector<std::shared_ptr<arangodb::LogicalCollection>> collections;
1741
+
1742
+ // make a copy of _collections, so we can call the callback function without
1743
+ // the lock
1744
+ {
1745
+ RECURSIVE_READ_LOCKER (_dataSourceLock, _dataSourceLockWriteOwner);
1746
+ collections = _collections;
1747
+ }
1741
1748
1742
- for (auto const & it : _collections ) {
1749
+ for (auto const & it : collections ) {
1743
1750
cb (it.get ());
1744
1751
}
1745
1752
}
You can’t perform that action at this time.
0 commit comments