⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 295175 in webkit


Ignore:
Timestamp:
Jun 2, 2022, 11:45:05 PM (4 years ago)
Author:
Alan Coon
Message:

Apply patch. rdar://problem/92380002

Location:
branches/safari-613-branch
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-613-branch/Source/WTF/wtf/ThreadAssertions.h

    r276706 r295175  
    4242//     template<typename> void doTaskCompileFailure() { doTaskImpl(); }
    4343// private:
    44 //     void doTaskImpl() WTF_REQUIRES_LOCK(m_ownerThread);
    45 //     int m_value WTF_GUARDED_BY_LOCK(m_ownerThread) { 0 };
     44//     void doTaskImpl() WTF_REQUIRES_CAPABILITY(m_ownerThread);
     45//     int m_value WTF_GUARDED_BY_CAPABILITY(m_ownerThread) { 0 };
    4646//     NO_UNIQUE_ADDRESS ThreadAssertion m_ownerThread;
    4747// };
    48 class WTF_CAPABILITY_LOCK ThreadAssertion {
     48class WTF_CAPABILITY("is current") ThreadAssertion {
    4949public:
    5050    ThreadAssertion() = default;
    … …  
    6565};
    6666
    67 inline void assertIsCurrent(const ThreadAssertion& threadAssertion) WTF_ASSERTS_ACQUIRED_LOCK(threadAssertion)
     67inline void assertIsCurrent(const ThreadAssertion& threadAssertion) WTF_ASSERTS_ACQUIRED_CAPABILITY(threadAssertion)
    6868{
    6969    ASSERT_UNUSED(threadAssertion, Thread::current().uid() == threadAssertion.m_uid);
    … …  
    7575// Example:
    7676// extern NamedAssertion& mainThread;
    77 // inline void assertIsMainThread() WTF_ASSERTS_ACQUIRED_LOCK(mainThread);
    78 // void myTask() WTF_REQUIRES_LOCK(mainThread) { printf("my task is running"); }
     77// inline void assertIsMainThread() WTF_ASSERTS_ACQUIRED_CAPABILITY(mainThread);
     78// void myTask() WTF_REQUIRES_CAPABILITY(mainThread) { printf("my task is running"); }
    7979// void runner() {
    8080//     assertIsMainThread();
    … …  
    8484//     myTask();
    8585// }
    86 class WTF_CAPABILITY_LOCK NamedAssertion { };
     86class WTF_CAPABILITY("is current") NamedAssertion { };
    8787
    88 // To be used with WTF_REQUIRES_LOCK(mainThread). Symbol is undefined.
     88// To be used with WTF_REQUIRES_CAPABILITY(mainThread). Symbol is undefined.
    8989extern NamedAssertion& mainThread;
    90 inline void assertIsMainThread() WTF_ASSERTS_ACQUIRED_LOCK(mainThread) { ASSERT(isMainThread()); }
     90inline void assertIsMainThread() WTF_ASSERTS_ACQUIRED_CAPABILITY(mainThread) { ASSERT(isMainThread()); }
    9191
    92 // To be used with WTF_REQUIRES_LOCK(mainRunLoop). Symbol is undefined.
     92// To be used with WTF_REQUIRES_CAPABILITY(mainRunLoop). Symbol is undefined.
    9393extern NamedAssertion& mainRunLoop;
    94 inline void assertIsMainRunLoop() WTF_ASSERTS_ACQUIRED_LOCK(mainRunLoop) { ASSERT(isMainRunLoop()); }
     94inline void assertIsMainRunLoop() WTF_ASSERTS_ACQUIRED_CAPABILITY(mainRunLoop) { ASSERT(isMainRunLoop()); }
    9595
    9696}
  • branches/safari-613-branch/Source/WTF/wtf/ThreadSafetyAnalysis.h

    r276247 r295175  
    3636#endif
    3737
    38 #define WTF_ACQUIRES_LOCK_IF(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(try_acquire_capability(__VA_ARGS__))
    39 #define WTF_ACQUIRES_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(acquire_capability(__VA_ARGS__))
    40 #define WTF_ACQUIRES_SHARED_LOCK_IF(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(try_acquire_shared_capability(__VA_ARGS__))
    41 #define WTF_ACQUIRES_SHARED_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(acquire_shared_capability(__VA_ARGS__))
    42 #define WTF_ASSERTS_ACQUIRED_LOCK(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(assert_capability(x))
    43 #define WTF_ASSERTS_ACQUIRED_SHARED_LOCK(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(assert_shared_capability(x))
    44 #define WTF_CAPABILITY_LOCK WTF_THREAD_ANNOTATION_ATTRIBUTE(capability("mutex"))
     38#define WTF_ACQUIRES_CAPABILITY_IF(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(try_acquire_capability(__VA_ARGS__))
     39#define WTF_ACQUIRES_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(acquire_capability(__VA_ARGS__))
     40#define WTF_ACQUIRES_SHARED_CAPABILITY_IF(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(try_acquire_shared_capability(__VA_ARGS__))
     41#define WTF_ACQUIRES_SHARED_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(acquire_shared_capability(__VA_ARGS__))
     42#define WTF_ASSERTS_ACQUIRED_CAPABILITY(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(assert_capability(x))
     43#define WTF_ASSERTS_ACQUIRED_SHARED_CAPABILITY(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(assert_shared_capability(x))
     44#define WTF_CAPABILITY(name) WTF_THREAD_ANNOTATION_ATTRIBUTE(capability(name))
    4545#define WTF_CAPABILITY_SCOPED_LOCK WTF_THREAD_ANNOTATION_ATTRIBUTE(scoped_lockable)
    46 #define WTF_EXCLUDES_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(locks_excluded(__VA_ARGS__))
    47 #define WTF_GUARDED_BY_LOCK(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(guarded_by(x))
     46#define WTF_EXCLUDES_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(locks_excluded(__VA_ARGS__))
     47#define WTF_GUARDED_BY_CAPABILITY(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(guarded_by(x))
    4848#define WTF_IGNORES_THREAD_SAFETY_ANALYSIS WTF_THREAD_ANNOTATION_ATTRIBUTE(no_thread_safety_analysis)
    49 #define WTF_POINTEE_GUARDED_BY_LOCK(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(pt_guarded_by(x))
    50 #define WTF_RELEASES_LOCK_GENERIC(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_generic_capability(__VA_ARGS__))
    51 #define WTF_RELEASES_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_capability(__VA_ARGS__))
    52 #define WTF_RELEASES_SHARED_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_shared_capability(__VA_ARGS__))
    53 #define WTF_REQUIRES_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(requires_capability(__VA_ARGS__))
    54 #define WTF_REQUIRES_SHARED_LOCK(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(requires_shared_capability(__VA_ARGS__))
    55 #define WTF_RETURNS_LOCK(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(lock_returned(x))
     49#define WTF_POINTEE_GUARDED_BY_CAPABILITY(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(pt_guarded_by(x))
     50#define WTF_RELEASES_GENERIC_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_generic_capability(__VA_ARGS__))
     51#define WTF_RELEASES_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_capability(__VA_ARGS__))
     52#define WTF_RELEASES_SHARED_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(release_shared_capability(__VA_ARGS__))
     53#define WTF_REQUIRES_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(requires_capability(__VA_ARGS__))
     54#define WTF_REQUIRES_SHARED_CAPABILITY(...) WTF_THREAD_ANNOTATION_ATTRIBUTE(requires_shared_capability(__VA_ARGS__))
     55#define WTF_RETURNS_CAPABILITY(x) WTF_THREAD_ANNOTATION_ATTRIBUTE(lock_returned(x))
     56
     57// Using WTF_CAPABILITY_LOCK is a common use-case. Introduce terms containing "LOCK" for maximum readability.
     58#define WTF_ACQUIRES_LOCK_IF(...) WTF_ACQUIRES_CAPABILITY_IF(__VA_ARGS__)
     59#define WTF_ACQUIRES_LOCK(...)  WTF_ACQUIRES_CAPABILITY(__VA_ARGS__)
     60#define WTF_ACQUIRES_SHARED_LOCK_IF(...) WTF_ACQUIRES_SHARED_CAPABILITY_IF(__VA_ARGS__)
     61#define WTF_ACQUIRES_SHARED_LOCK(...) WTF_ACQUIRES_SHARED_CAPABILITY(__VA_ARGS__)
     62#define WTF_ASSERTS_ACQUIRED_LOCK(x) WTF_ASSERTS_ACQUIRED_CAPABILITY(x)
     63#define WTF_ASSERTS_ACQUIRED_SHARED_LOCK(x) WTF_ASSERTS_ACQUIRED_SHARED_CAPABILITY(x)
     64#define WTF_CAPABILITY_LOCK WTF_CAPABILITY("lock")
     65#define WTF_EXCLUDES_LOCK(...) WTF_EXCLUDES_CAPABILITY(__VA_ARGS__)
     66#define WTF_GUARDED_BY_LOCK(x) WTF_GUARDED_BY_CAPABILITY(x)
     67#define WTF_POINTEE_GUARDED_BY_LOCK(x) WTF_POINTEE_GUARDED_BY_CAPABILITY(x)
     68#define WTF_RELEASES_GENERIC_LOCK(...) WTF_RELEASES_GENERIC_CAPABILITY(__VA_ARGS__)
     69#define WTF_RELEASES_LOCK(...) WTF_RELEASES_CAPABILITY(__VA_ARGS__)
     70#define WTF_RELEASES_SHARED_LOCK(...) WTF_RELEASES_SHARED_CAPABILITY(__VA_ARGS__)
     71#define WTF_REQUIRES_LOCK(...) WTF_REQUIRES_CAPABILITY(__VA_ARGS__)
     72#define WTF_REQUIRES_SHARED_LOCK(...) WTF_REQUIRES_SHARED_CAPABILITY(__VA_ARGS__)
     73#define WTF_RETURNS_LOCK(x) WTF_RETURNS_CAPABILITY(x)
  • branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h

    r288984 r295175  
    143143    Lock m_remoteDisplayListsLock;
    144144    bool m_canRegisterRemoteDisplayLists WTF_GUARDED_BY_LOCK(m_remoteDisplayListsLock) { false };
    145     HashMap<QualifiedRenderingResourceIdentifier, Ref<RemoteDisplayListRecorder>> m_remoteDisplayLists WTF_GUARDED_BY_LOCK(m_remoteDisplayListsLock);
     145    HashMap<QualifiedRenderingResourceIdentifier, Ref<RemoteDisplayListRecorder>> m_remoteDisplayLists WTF_GUARDED_BY_CAPABILITY(m_remoteDisplayListsLock);
    146146};
    147147
  • branches/safari-613-branch/Tools/Scripts/webkitpy/style/checkers/cpp.py

    r291673 r295175  
    41644164                and not modified_identifier == "LOG_CHANNEL"
    41654165                and not modified_identifier == "WTF_GUARDED_BY_LOCK"
     4166                and not modified_identifier == "WTF_GUARDED_BY_CAPABILITY"
    41664167                and not modified_identifier.find('chrono_literals') >= 0):
    41674168                error(line_number, 'readability/naming/underscores', 4, identifier + " is incorrectly named. Don't use underscores in your identifier names.")
  • branches/safari-613-branch/Tools/TestWebKitAPI/Tests/WTF/ThreadAssertionsTest.cpp

    r276706 r295175  
    4747    template<typename T> void accessVariableCompileFailure(T n) { m_value = n; }
    4848private:
    49     int doTaskImpl(int n) WTF_REQUIRES_LOCK(m_ownerThread) { return n + 1; }
    50     int m_value WTF_GUARDED_BY_LOCK(m_ownerThread) { 0 };
     49    int doTaskImpl(int n) WTF_REQUIRES_CAPABILITY(m_ownerThread) { return n + 1; }
     50    int m_value WTF_GUARDED_BY_CAPABILITY(m_ownerThread) { 0 };
    5151    NO_UNIQUE_ADDRESS ThreadAssertion m_ownerThread;
    5252};
    … …  
    6565}
    6666
    67 static int testMainThreadFunction() WTF_REQUIRES_LOCK(mainThread) { return 11; }
     67static int testMainThreadFunction() WTF_REQUIRES_CAPABILITY(mainThread) { return 11; }
    6868
    6969TEST(WTF_ThreadAssertions, TestMainThreadNamedAssertion)
    … …  
    7676}
    7777
    78 static int testMainRunLoopFunction() WTF_REQUIRES_LOCK(mainRunLoop) { return 12; }
     78static int testMainRunLoopFunction() WTF_REQUIRES_CAPABILITY(mainRunLoop) { return 12; }
    7979
    8080TEST(WTF_ThreadAssertions, TestMainRunLoopNamedAssertion)
Note: See TracChangeset for help on using the changeset viewer.