OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 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 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 #include "modules/webdatabase/DatabaseContext.h" | 42 #include "modules/webdatabase/DatabaseContext.h" |
43 #include "modules/webdatabase/DatabaseServer.h" | 43 #include "modules/webdatabase/DatabaseServer.h" |
44 #include "modules/webdatabase/DatabaseSync.h" | 44 #include "modules/webdatabase/DatabaseSync.h" |
45 #include "modules/webdatabase/DatabaseTask.h" | 45 #include "modules/webdatabase/DatabaseTask.h" |
46 #include "platform/weborigin/SecurityOrigin.h" | 46 #include "platform/weborigin/SecurityOrigin.h" |
47 | 47 |
48 namespace WebCore { | 48 namespace WebCore { |
49 | 49 |
50 DatabaseManager& DatabaseManager::manager() | 50 DatabaseManager& DatabaseManager::manager() |
51 { | 51 { |
52 static DatabaseManager* dbManager = 0; | 52 AtomicallyInitializedStatic(DatabaseManager*, dbManager = new DatabaseManage r); |
eseidel
2014/05/29 07:03:37
I didn't know this existed, crazy.
https://code.g
| |
53 // FIXME: The following is vulnerable to a race between threads. Need to | |
54 // implement a thread safe on-first-use static initializer. | |
55 if (!dbManager) | |
56 dbManager = new DatabaseManager(); | |
57 | |
58 return *dbManager; | 53 return *dbManager; |
59 } | 54 } |
60 | 55 |
61 DatabaseManager::DatabaseManager() | 56 DatabaseManager::DatabaseManager() |
62 #if !ASSERT_DISABLED | 57 #if !ASSERT_DISABLED |
63 : m_databaseContextRegisteredCount(0) | 58 : m_databaseContextRegisteredCount(0) |
64 , m_databaseContextInstanceCount(0) | 59 , m_databaseContextInstanceCount(0) |
65 #endif | 60 #endif |
66 { | 61 { |
67 m_server = new DatabaseServer; | 62 m_server = new DatabaseServer; |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
278 { | 273 { |
279 m_server->interruptAllDatabasesForContext(databaseContext->backend()); | 274 m_server->interruptAllDatabasesForContext(databaseContext->backend()); |
280 } | 275 } |
281 | 276 |
282 void DatabaseManager::logErrorMessage(ExecutionContext* context, const String& m essage) | 277 void DatabaseManager::logErrorMessage(ExecutionContext* context, const String& m essage) |
283 { | 278 { |
284 context->addConsoleMessage(StorageMessageSource, ErrorMessageLevel, message) ; | 279 context->addConsoleMessage(StorageMessageSource, ErrorMessageLevel, message) ; |
285 } | 280 } |
286 | 281 |
287 } // namespace WebCore | 282 } // namespace WebCore |
OLD | NEW |