From e8af9d421ce18b3737e20af9abf15bc669132e8c Mon Sep 17 00:00:00 2001 From: huyhu Date: Fri, 17 Apr 2020 16:57:20 +0200 Subject: [PATCH] #1637 Check if the read lock is held before exiting. --- LiteDB.Tests/Engine/ParallelQuery_Tests.cs | 2 +- LiteDB/Engine/Services/LockService.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/LiteDB.Tests/Engine/ParallelQuery_Tests.cs b/LiteDB.Tests/Engine/ParallelQuery_Tests.cs index 5d6f49e5a..d3b3c55f2 100644 --- a/LiteDB.Tests/Engine/ParallelQuery_Tests.cs +++ b/LiteDB.Tests/Engine/ParallelQuery_Tests.cs @@ -10,7 +10,7 @@ namespace LiteDB.Tests.Engine { public class ParallelQuery_Tests { - [Fact(Skip = "Must fix parallel query fetch")] + [Fact] public void Query_Parallel() { using(var db = new LiteDatabase(new MemoryStream())) diff --git a/LiteDB/Engine/Services/LockService.cs b/LiteDB/Engine/Services/LockService.cs index cf4bbad97..99e0712a7 100644 --- a/LiteDB/Engine/Services/LockService.cs +++ b/LiteDB/Engine/Services/LockService.cs @@ -54,7 +54,8 @@ public void ExitTransaction() // if current thread are in reserved mode, do not exit transaction (will be exit from ExitExclusive) if (_transaction.IsWriteLockHeld) return; - _transaction.ExitReadLock(); + if (_transaction.IsReadLockHeld) + _transaction.ExitReadLock(); } ///