internal bool AddGameDataPath(string pathToAdd)
{
if (pathToAdd == null) throw new ArgumentNullException("pathToAdd");
var oldGameDataPaths = default(string[]);
var newGameDataPaths = default(string[]);
do
{
oldGameDataPaths = this.GameDataPaths;
newGameDataPaths = oldGameDataPaths.Union(new[] { pathToAdd }).ToArray();
} while (Interlocked.CompareExchange(ref this.GameDataPaths, newGameDataPaths, oldGameDataPaths) != oldGameDataPaths);
return oldGameDataPaths.Length != newGameDataPaths.Length;
}