diff --git a/src/UglyToad.PdfPig/Tokens/OperatorToken.cs b/src/UglyToad.PdfPig/Tokens/OperatorToken.cs index 15950575..889605a1 100644 --- a/src/UglyToad.PdfPig/Tokens/OperatorToken.cs +++ b/src/UglyToad.PdfPig/Tokens/OperatorToken.cs @@ -4,6 +4,7 @@ internal class OperatorToken : IDataToken { + private static readonly object Lock = new object(); private static readonly Dictionary PooledNames = new Dictionary(); public static readonly OperatorToken R = new OperatorToken("R"); @@ -24,10 +25,15 @@ private OperatorToken(string data) { - if (!PooledNames.TryGetValue(data, out var stored)) + string stored; + + lock (Lock) { - stored = data; - PooledNames[data] = stored; + if (!PooledNames.TryGetValue(data, out stored)) + { + stored = data; + PooledNames[data] = stored; + } } Data = stored;