public static void Free(ILogScopeSyncImplementation implementation)
 {
     lock (_types)
     {
         if (implementation.GetType().IsGenericType &&
             implementation.GetType().GetGenericTypeDefinition() == typeof (LogScopeSync<>))
         {
             var type = implementation.GetType().GetGenericArguments()[0];
             if (!_types.Contains(type))
             {
                 _types.Enqueue(type);
             }
         }
     }
 }