public void MultipleThreadsCanSafelyWriteandCommit() { var tempPath = Path.GetTempPath(); var dbPath = Path.Combine(tempPath, "test" + ".ravendb"); Log("Saving db in: " + dbPath); File.Delete(dbPath); var persistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true); var database = new Database(persistentSource); var tableOne = database.Add(new Table("Test1")); var tableTwo = database.Add(new Table("Test2")); database.Initialize(); try { Parallel.For(0, 10, counter => { Table table = counter % 2 == 0 ? tableOne : tableTwo; ProcessTask(counter, database, table); }); } catch (AggregateException aggEx) { Assert.False(true, aggEx.Message + " : " + aggEx.InnerException.Message); } finally { persistentSource.Dispose(); } }
protected void Reopen() { PersistentSource.Dispose(); OpenDictionary(); }
public void Dispose() { persistentSource.Dispose(); persistentSource.Delete(); }