when calling `executeLocked(string, () -> {})` this would be nice if it had a timeout to provide a way to get out of deadlocks if they happen