From 8d34d5af3ca45472ef7080514aabed6bdc9e5335 Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Sun, 24 Apr 2022 11:56:06 +0200
Subject: [PATCH] Revert "[chore] Tidy up federating db locks a tiny bit
 (#472)" (#479)

This reverts commit 31c1067a548039e7d95f131b3972ecfe1f57f835.
---
 internal/federation/federatingdb/lock.go | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/internal/federation/federatingdb/lock.go b/internal/federation/federatingdb/lock.go
index 4609cd99e..22f2bb77a 100644
--- a/internal/federation/federatingdb/lock.go
+++ b/internal/federation/federatingdb/lock.go
@@ -52,7 +52,6 @@ func (f *federatingDB) Lock(c context.Context, id *url.URL) error {
 
 	// Acquire map lock
 	f.mutex.Lock()
-	defer f.mutex.Unlock()
 
 	// Get mutex, or create new
 	mu, ok := f.locks[idStr]
@@ -64,7 +63,8 @@ func (f *federatingDB) Lock(c context.Context, id *url.URL) error {
 		f.locks[idStr] = mu
 	}
 
-	// Lock the mutex
+	// Unlock map, acquire mutex lock
+	f.mutex.Unlock()
 	mu.Lock()
 	return nil
 }
@@ -81,13 +81,13 @@ func (f *federatingDB) Unlock(c context.Context, id *url.URL) error {
 	}
 	idStr := id.String()
 
-	// Acquire map lock
+	// Check map for mutex
 	f.mutex.Lock()
-	defer f.mutex.Unlock()
-
 	mu, ok := f.locks[idStr]
+	f.mutex.Unlock()
+
 	if !ok {
-		return errors.New("Unlock: missing an id in unlock")
+		return errors.New("missing an id in unlock")
 	}
 
 	// Unlock the mutex