| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 LOG(StorageAPI, "About to detach thread %i and clear the ref to DatabaseThre
ad %p, which currently has %i ref(s)", m_threadID, this, refCount()); | 106 LOG(StorageAPI, "About to detach thread %i and clear the ref to DatabaseThre
ad %p, which currently has %i ref(s)", m_threadID, this, refCount()); |
| 107 | 107 |
| 108 // Close the databases that we ran transactions on. This ensures that if any
transactions are still open, they are rolled back and we don't leave the databa
se in an | 108 // Close the databases that we ran transactions on. This ensures that if any
transactions are still open, they are rolled back and we don't leave the databa
se in an |
| 109 // inconsistent or locked state. | 109 // inconsistent or locked state. |
| 110 if (m_openDatabaseSet.size() > 0) { | 110 if (m_openDatabaseSet.size() > 0) { |
| 111 // As the call to close will modify the original set, we must take a cop
y to iterate over. | 111 // As the call to close will modify the original set, we must take a cop
y to iterate over. |
| 112 DatabaseSet openSetCopy; | 112 DatabaseSet openSetCopy; |
| 113 openSetCopy.swap(m_openDatabaseSet); | 113 openSetCopy.swap(m_openDatabaseSet); |
| 114 DatabaseSet::iterator end = openSetCopy.end(); | 114 DatabaseSet::iterator end = openSetCopy.end(); |
| 115 for (DatabaseSet::iterator it = openSetCopy.begin(); it != end; ++it) | 115 for (DatabaseSet::iterator it = openSetCopy.begin(); it != end; ++it) |
| 116 (*it)->close(); | 116 (*it)->close(true); |
| 117 } | 117 } |
| 118 | 118 |
| 119 // Detach the thread so its resources are no longer of any concern to anyone
else | 119 // Detach the thread so its resources are no longer of any concern to anyone
else |
| 120 detachThread(m_threadID); | 120 detachThread(m_threadID); |
| 121 | 121 |
| 122 DatabaseTaskSynchronizer* cleanupSync = m_cleanupSync; | 122 DatabaseTaskSynchronizer* cleanupSync = m_cleanupSync; |
| 123 | 123 |
| 124 // Clear the self refptr, possibly resulting in deletion | 124 // Clear the self refptr, possibly resulting in deletion |
| 125 m_selfRef = 0; | 125 m_selfRef = 0; |
| 126 | 126 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 166 |
| 167 void DatabaseThread::unscheduleDatabaseTasks(Database* database) | 167 void DatabaseThread::unscheduleDatabaseTasks(Database* database) |
| 168 { | 168 { |
| 169 // Note that the thread loop is running, so some tasks for the database | 169 // Note that the thread loop is running, so some tasks for the database |
| 170 // may still be executed. This is unavoidable. | 170 // may still be executed. This is unavoidable. |
| 171 SameDatabasePredicate predicate(database); | 171 SameDatabasePredicate predicate(database); |
| 172 m_queue.removeIf(predicate); | 172 m_queue.removeIf(predicate); |
| 173 } | 173 } |
| 174 } // namespace WebCore | 174 } // namespace WebCore |
| 175 #endif | 175 #endif |
| OLD | NEW |