Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 | 57 |
| 58 // Marks specified class as requiring thread safe handles which can be used from any thread. | 58 // Marks specified class as requiring thread safe handles which can be used from any thread. |
| 59 // Notice that marking base class does not automatically mark its descendants an d they | 59 // Notice that marking base class does not automatically mark its descendants an d they |
| 60 // have to be explicitly marked. | 60 // have to be explicitly marked. |
| 61 #define REQUIRE_THREADSAFE_HANDLES(Class) \ | 61 #define REQUIRE_THREADSAFE_HANDLES(Class) \ |
| 62 class Class; \ | 62 class Class; \ |
| 63 template<> struct ThreadingTrait<Class> { \ | 63 template<> struct ThreadingTrait<Class> { \ |
| 64 static const ThreadAffinity Affinity = AnyThread; \ | 64 static const ThreadAffinity Affinity = AnyThread; \ |
| 65 } | 65 } |
| 66 | 66 |
| 67 #define REQUIRE_THREADSAFE_HANDLES_NS(Namespace, Class) \ | 67 #define REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(Namespace, Class) \ |
| 68 namespace Namespace { \ | 68 namespace Namespace { \ |
|
Mads Ager (chromium)
2013/12/03 08:43:33
Could you align the '\'s at the end of the line.
haraken
2013/12/03 08:48:55
Done.
| |
| 69 class Class; \ | 69 class Class; \ |
| 70 } \ | 70 } \ |
| 71 namespace WebCore { \ | 71 namespace WebCore { \ |
| 72 template<> struct ThreadingTrait<Namespace::Class> { \ | 72 template<> struct ThreadingTrait<Namespace::Class> { \ |
| 73 static const ThreadAffinity Affinity = AnyThread; \ | 73 static const ThreadAffinity Affinity = AnyThread; \ |
| 74 }; \ | 74 }; \ |
| 75 } | 75 } |
| 76 | 76 |
| 77 | |
| 78 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { }; | 77 template<typename U> class ThreadingTrait<const U> : public ThreadingTrait<U> { }; |
| 79 | 78 |
| 80 class HeapObjectHeader; | 79 class HeapObjectHeader; |
| 81 class FinalizedHeapObjectHeader; | 80 class FinalizedHeapObjectHeader; |
| 82 template<typename Header> class ThreadHeap; | 81 template<typename Header> class ThreadHeap; |
| 83 | 82 |
| 84 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below. | 83 // To create a new typed heap add a H(<ClassName>) to the for FOR_EACH_TYPED_HEA P macro below. |
| 85 #define FOR_EACH_TYPED_HEAP(H) \ | 84 #define FOR_EACH_TYPED_HEAP(H) \ |
| 86 H(Node) | 85 H(Node) |
| 87 | 86 |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 318 public: | 317 public: |
| 319 static ThreadState* State() { return ThreadState::MainThreadState(); } | 318 static ThreadState* State() { return ThreadState::MainThreadState(); } |
| 320 }; | 319 }; |
| 321 | 320 |
| 322 template<> class ThreadStateFor<AnyThread> { | 321 template<> class ThreadStateFor<AnyThread> { |
| 323 public: | 322 public: |
| 324 static ThreadState* State() { return ThreadState::Current(); } | 323 static ThreadState* State() { return ThreadState::Current(); } |
| 325 }; | 324 }; |
| 326 | 325 |
| 327 // FIXME(oilpan): find a better place for this. | 326 // FIXME(oilpan): find a better place for this. |
| 328 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext); | 327 REQUIRE_THREADSAFE_HANDLES(Blob); |
| 328 REQUIRE_THREADSAFE_HANDLES(DOMCoreException); | |
| 329 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem); | |
| 330 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync); | |
| 331 REQUIRE_THREADSAFE_HANDLES(DOMURL); | |
| 332 REQUIRE_THREADSAFE_HANDLES(DataView); | |
| 333 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext); | |
| 334 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry); | |
| 335 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync); | |
| 336 REQUIRE_THREADSAFE_HANDLES(DirectoryReder); | |
| 337 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync); | |
| 329 REQUIRE_THREADSAFE_HANDLES(Document); | 338 REQUIRE_THREADSAFE_HANDLES(Document); |
| 330 REQUIRE_THREADSAFE_HANDLES(WorkerContext); | 339 REQUIRE_THREADSAFE_HANDLES(Entry); |
| 331 REQUIRE_THREADSAFE_HANDLES(DedicatedWorkerContext); | 340 REQUIRE_THREADSAFE_HANDLES(EntryArray); |
| 332 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext); | 341 REQUIRE_THREADSAFE_HANDLES(EntryArraySync); |
| 342 REQUIRE_THREADSAFE_HANDLES(EntrySync); | |
| 343 REQUIRE_THREADSAFE_HANDLES(Event); | |
| 344 REQUIRE_THREADSAFE_HANDLES(EventSource); | |
| 333 REQUIRE_THREADSAFE_HANDLES(EventTarget); | 345 REQUIRE_THREADSAFE_HANDLES(EventTarget); |
| 334 REQUIRE_THREADSAFE_HANDLES(MessagePort); | 346 REQUIRE_THREADSAFE_HANDLES(File); |
| 347 REQUIRE_THREADSAFE_HANDLES(FileEntry); | |
| 348 REQUIRE_THREADSAFE_HANDLES(FileEntrySync); | |
| 349 REQUIRE_THREADSAFE_HANDLES(FileError); | |
| 350 REQUIRE_THREADSAFE_HANDLES(FileException); | |
| 335 REQUIRE_THREADSAFE_HANDLES(FileReader); | 351 REQUIRE_THREADSAFE_HANDLES(FileReader); |
| 336 REQUIRE_THREADSAFE_HANDLES(FileReaderSync); | 352 REQUIRE_THREADSAFE_HANDLES(FileReaderSync); |
| 337 REQUIRE_THREADSAFE_HANDLES(ProgressEvent); | 353 REQUIRE_THREADSAFE_HANDLES(FileWriter); |
| 338 REQUIRE_THREADSAFE_HANDLES(Event); | |
| 339 REQUIRE_THREADSAFE_HANDLES(FileError); | |
| 340 REQUIRE_THREADSAFE_HANDLES(FileException); | |
| 341 REQUIRE_THREADSAFE_HANDLES(DataView); | |
| 342 REQUIRE_THREADSAFE_HANDLES(DOMCoreException); | |
| 343 REQUIRE_THREADSAFE_HANDLES(DOMURL); | |
| 344 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest); | |
| 345 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException); | |
| 346 REQUIRE_THREADSAFE_HANDLES(Blob); | |
| 347 REQUIRE_THREADSAFE_HANDLES(DOMFileSystem); | |
| 348 REQUIRE_THREADSAFE_HANDLES(Entry); | |
| 349 REQUIRE_THREADSAFE_HANDLES(FileEntry); | |
| 350 REQUIRE_THREADSAFE_HANDLES(DirectoryEntry); | |
| 351 REQUIRE_THREADSAFE_HANDLES(DirectoryReder); | |
| 352 REQUIRE_THREADSAFE_HANDLES(DOMFileSystemSync); | |
| 353 REQUIRE_THREADSAFE_HANDLES(EntrySync); | |
| 354 REQUIRE_THREADSAFE_HANDLES(FileEntrySync); | |
| 355 REQUIRE_THREADSAFE_HANDLES(DirectoryEntrySync); | |
| 356 REQUIRE_THREADSAFE_HANDLES(DirectoryRederSync); | |
| 357 REQUIRE_THREADSAFE_HANDLES(EntryArray); | |
| 358 REQUIRE_THREADSAFE_HANDLES(EntryArraySync); | |
| 359 REQUIRE_THREADSAFE_HANDLES(FileWriterBase); | 354 REQUIRE_THREADSAFE_HANDLES(FileWriterBase); |
| 360 REQUIRE_THREADSAFE_HANDLES(FileWriter); | |
| 361 REQUIRE_THREADSAFE_HANDLES(FileWriterSync); | 355 REQUIRE_THREADSAFE_HANDLES(FileWriterSync); |
| 362 REQUIRE_THREADSAFE_HANDLES(File); | |
| 363 REQUIRE_THREADSAFE_HANDLES(WebSocket); | |
| 364 REQUIRE_THREADSAFE_HANDLES(EventSource); | |
| 365 | |
| 366 REQUIRE_THREADSAFE_HANDLES(IDBAny); | 356 REQUIRE_THREADSAFE_HANDLES(IDBAny); |
| 367 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks); | 357 REQUIRE_THREADSAFE_HANDLES(IDBCallbacks); |
| 368 REQUIRE_THREADSAFE_HANDLES(IDBCursor); | 358 REQUIRE_THREADSAFE_HANDLES(IDBCursor); |
| 369 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue); | 359 REQUIRE_THREADSAFE_HANDLES(IDBCursorWithValue); |
| 370 REQUIRE_THREADSAFE_HANDLES(IDBDatabase); | 360 REQUIRE_THREADSAFE_HANDLES(IDBDatabase); |
| 361 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendImpl); | |
| 362 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseBackendInterface); | |
| 363 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacks); | |
| 364 REQUIRE_THREADSAFE_HANDLES(IDBDatabaseCallbacksImpl); | |
| 371 REQUIRE_THREADSAFE_HANDLES(IDBFactory); | 365 REQUIRE_THREADSAFE_HANDLES(IDBFactory); |
| 372 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl); | 366 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendImpl); |
| 373 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface); | 367 REQUIRE_THREADSAFE_HANDLES(IDBFactoryBackendInterface); |
| 374 REQUIRE_THREADSAFE_HANDLES(IDBIndex); | 368 REQUIRE_THREADSAFE_HANDLES(IDBIndex); |
| 375 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange); | 369 REQUIRE_THREADSAFE_HANDLES(IDBKeyRange); |
| 376 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore); | 370 REQUIRE_THREADSAFE_HANDLES(IDBObjectStore); |
| 377 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest); | 371 REQUIRE_THREADSAFE_HANDLES(IDBOpenDBRequest); |
| 372 REQUIRE_THREADSAFE_HANDLES(IDBRequest); | |
| 378 REQUIRE_THREADSAFE_HANDLES(IDBTransaction); | 373 REQUIRE_THREADSAFE_HANDLES(IDBTransaction); |
| 379 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent); | 374 REQUIRE_THREADSAFE_HANDLES(IDBVersionChangeEvent); |
| 380 REQUIRE_THREADSAFE_HANDLES(IDBRequest); | 375 REQUIRE_THREADSAFE_HANDLES(MessagePort); |
| 376 REQUIRE_THREADSAFE_HANDLES(ProgressEvent); | |
| 377 REQUIRE_THREADSAFE_HANDLES(ScriptExecutionContext); | |
| 378 REQUIRE_THREADSAFE_HANDLES(SharedWorkerContext); | |
| 379 REQUIRE_THREADSAFE_HANDLES(WebSocket); | |
| 380 REQUIRE_THREADSAFE_HANDLES(WorkerContext); | |
| 381 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequest); | |
| 382 REQUIRE_THREADSAFE_HANDLES(XMLHttpRequestException); | |
| 381 | 383 |
| 382 } | 384 } |
| 383 | 385 |
| 384 REQUIRE_THREADSAFE_HANDLES_NS(WTF, ArrayBuffer); | 386 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, ArrayBuffer); |
| 385 REQUIRE_THREADSAFE_HANDLES_NS(WTF, ArrayBufferView); | 387 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, ArrayBufferView); |
| 386 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int8Array); | 388 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int8Array); |
| 387 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint8ClampedArray); | 389 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint8ClampedArray); |
| 388 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint8Array); | 390 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint8Array); |
| 389 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int16Array); | 391 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int16Array); |
| 390 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint16Array); | 392 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint16Array); |
| 391 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Int32Array); | 393 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Int32Array); |
| 392 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Uint32Array); | 394 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Uint32Array); |
| 393 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Float32Array); | 395 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Float32Array); |
| 394 REQUIRE_THREADSAFE_HANDLES_NS(WTF, Float64Array); | 396 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WTF, Float64Array); |
| 397 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBCallbacksProxy); | |
| 398 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseBackendProxy); | |
| 399 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBDatabaseCallbacksProxy); | |
| 400 REQUIRE_THREADSAFE_HANDLES_WITH_NAMESPACE(WebKit, IDBFactoryBackendProxy); | |
| 395 | 401 |
| 396 #endif | 402 #endif |
| OLD | NEW |