diff options
-rw-r--r-- | OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs index 566880b..8ecdc04 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs | |||
@@ -48,11 +48,6 @@ namespace OpenSim.Framework.Data.SQLite | |||
48 | private SqliteDataAdapter invFoldersDa; | 48 | private SqliteDataAdapter invFoldersDa; |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// used to manage concurrent access tothe sqlite database files. Only one thread may open, read, write at a time. | ||
52 | /// </summary> | ||
53 | private object InventoryLock = new object(); | ||
54 | |||
55 | /// <summary> | ||
56 | /// Initialises the interface | 51 | /// Initialises the interface |
57 | /// </summary> | 52 | /// </summary> |
58 | public void Initialise() | 53 | public void Initialise() |
@@ -131,7 +126,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
131 | 126 | ||
132 | private void addFolder(InventoryFolderBase folder) | 127 | private void addFolder(InventoryFolderBase folder) |
133 | { | 128 | { |
134 | lock (InventoryLock) | 129 | lock (ds) |
135 | { | 130 | { |
136 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 131 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
137 | 132 | ||
@@ -153,7 +148,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
153 | 148 | ||
154 | private void moveFolder(InventoryFolderBase folder) | 149 | private void moveFolder(InventoryFolderBase folder) |
155 | { | 150 | { |
156 | lock (InventoryLock) | 151 | lock (ds) |
157 | { | 152 | { |
158 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 153 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
159 | 154 | ||
@@ -175,7 +170,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
175 | 170 | ||
176 | private void addItem(InventoryItemBase item) | 171 | private void addItem(InventoryItemBase item) |
177 | { | 172 | { |
178 | lock (InventoryLock) | 173 | lock (ds) |
179 | { | 174 | { |
180 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | 175 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; |
181 | 176 | ||
@@ -238,7 +233,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
238 | /// <returns>A List of InventoryItemBase items</returns> | 233 | /// <returns>A List of InventoryItemBase items</returns> |
239 | public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) | 234 | public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) |
240 | { | 235 | { |
241 | lock (InventoryLock) | 236 | lock (ds) |
242 | { | 237 | { |
243 | List<InventoryItemBase> retval = new List<InventoryItemBase>(); | 238 | List<InventoryItemBase> retval = new List<InventoryItemBase>(); |
244 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | 239 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; |
@@ -266,7 +261,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
266 | // see InventoryItemBase.getUserRootFolder | 261 | // see InventoryItemBase.getUserRootFolder |
267 | public InventoryFolderBase getUserRootFolder(LLUUID user) | 262 | public InventoryFolderBase getUserRootFolder(LLUUID user) |
268 | { | 263 | { |
269 | lock (InventoryLock) | 264 | lock (ds) |
270 | { | 265 | { |
271 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | 266 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); |
272 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 267 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
@@ -299,7 +294,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
299 | /// <param name="parentID">ID of parent</param> | 294 | /// <param name="parentID">ID of parent</param> |
300 | protected void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID) | 295 | protected void getInventoryFolders(ref List<InventoryFolderBase> folders, LLUUID parentID) |
301 | { | 296 | { |
302 | lock (InventoryLock) | 297 | lock (ds) |
303 | { | 298 | { |
304 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 299 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
305 | string selectExp = "parentID = '" + Util.ToRawUuidString(parentID) + "'"; | 300 | string selectExp = "parentID = '" + Util.ToRawUuidString(parentID) + "'"; |
@@ -346,7 +341,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
346 | /// <returns>A class containing item information</returns> | 341 | /// <returns>A class containing item information</returns> |
347 | public InventoryItemBase getInventoryItem(LLUUID item) | 342 | public InventoryItemBase getInventoryItem(LLUUID item) |
348 | { | 343 | { |
349 | lock (InventoryLock) | 344 | lock (ds) |
350 | { | 345 | { |
351 | DataRow row = ds.Tables["inventoryitems"].Rows.Find(Util.ToRawUuidString(item)); | 346 | DataRow row = ds.Tables["inventoryitems"].Rows.Find(Util.ToRawUuidString(item)); |
352 | if (row != null) | 347 | if (row != null) |
@@ -372,7 +367,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
372 | // better to leave multi region at this point. It does mean | 367 | // better to leave multi region at this point. It does mean |
373 | // that you don't get to see system textures why creating | 368 | // that you don't get to see system textures why creating |
374 | // clothes and the like. :( | 369 | // clothes and the like. :( |
375 | lock (InventoryLock) | 370 | lock (ds) |
376 | { | 371 | { |
377 | DataRow row = ds.Tables["inventoryfolders"].Rows.Find(Util.ToRawUuidString(folder)); | 372 | DataRow row = ds.Tables["inventoryfolders"].Rows.Find(Util.ToRawUuidString(folder)); |
378 | if (row != null) | 373 | if (row != null) |
@@ -410,7 +405,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
410 | /// <param name="item"></param> | 405 | /// <param name="item"></param> |
411 | public void deleteInventoryItem(LLUUID itemID) | 406 | public void deleteInventoryItem(LLUUID itemID) |
412 | { | 407 | { |
413 | lock (InventoryLock) | 408 | lock (ds) |
414 | { | 409 | { |
415 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | 410 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; |
416 | 411 | ||
@@ -473,7 +468,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
473 | /// <param name="item"></param> | 468 | /// <param name="item"></param> |
474 | public void deleteInventoryFolder(LLUUID folderID) | 469 | public void deleteInventoryFolder(LLUUID folderID) |
475 | { | 470 | { |
476 | lock (InventoryLock) | 471 | lock (ds) |
477 | { | 472 | { |
478 | List<InventoryFolderBase> subFolders = getFolderHierarchy(Util.ToRawUuidString(folderID)); | 473 | List<InventoryFolderBase> subFolders = getFolderHierarchy(Util.ToRawUuidString(folderID)); |
479 | 474 | ||
@@ -550,7 +545,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
550 | 545 | ||
551 | private void setupItemsCommands(SqliteDataAdapter da, SqliteConnection conn) | 546 | private void setupItemsCommands(SqliteDataAdapter da, SqliteConnection conn) |
552 | { | 547 | { |
553 | lock (InventoryLock) | 548 | lock (ds) |
554 | { | 549 | { |
555 | da.InsertCommand = createInsertCommand("inventoryitems", ds.Tables["inventoryitems"]); | 550 | da.InsertCommand = createInsertCommand("inventoryitems", ds.Tables["inventoryitems"]); |
556 | da.InsertCommand.Connection = conn; | 551 | da.InsertCommand.Connection = conn; |
@@ -567,7 +562,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
567 | 562 | ||
568 | private void setupFoldersCommands(SqliteDataAdapter da, SqliteConnection conn) | 563 | private void setupFoldersCommands(SqliteDataAdapter da, SqliteConnection conn) |
569 | { | 564 | { |
570 | lock (InventoryLock) | 565 | lock (ds) |
571 | { | 566 | { |
572 | da.InsertCommand = createInsertCommand("inventoryfolders", ds.Tables["inventoryfolders"]); | 567 | da.InsertCommand = createInsertCommand("inventoryfolders", ds.Tables["inventoryfolders"]); |
573 | da.InsertCommand.Connection = conn; | 568 | da.InsertCommand.Connection = conn; |
@@ -618,7 +613,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
618 | 613 | ||
619 | private void InitDB(SqliteConnection conn) | 614 | private void InitDB(SqliteConnection conn) |
620 | { | 615 | { |
621 | lock (InventoryLock) | 616 | lock (ds) |
622 | { | 617 | { |
623 | string createInventoryItems = defineTable(createInventoryItemsTable()); | 618 | string createInventoryItems = defineTable(createInventoryItemsTable()); |
624 | string createInventoryFolders = defineTable(createInventoryFoldersTable()); | 619 | string createInventoryFolders = defineTable(createInventoryFoldersTable()); |