Skip to content

Commit c1e7521

Browse files
committed
Document why DatabasePool.releaseMemory() needs a barrier
1 parent 6ab90a0 commit c1e7521

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

GRDB/Core/DatabasePool.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,14 @@ extension DatabasePool {
180180
// Release writer memory
181181
writer.sync { $0.releaseMemory() }
182182

183-
// Release readers memory by closing all connections
183+
// Release readers memory by closing all connections.
184+
//
185+
// We must use a barrier in order to guarantee that memory has been
186+
// freed (reader connections closed) when the method exits, as
187+
// documented.
188+
//
189+
// Without the barrier, connections would only close _eventually_ (after
190+
// their eventual concurrent jobs have completed).
184191
readerPool?.barrier {
185192
readerPool?.removeAll()
186193
}

0 commit comments

Comments
 (0)