Summary: | Drop UncheckedCondition / UncheckedLock | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Chris Dumez <cdumez> | ||||||
Component: | Web Template Framework | Assignee: | Chris Dumez <cdumez> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | achristensen, benjamin, cmarcelo, darin, ddkilzer, ews-watchlist, ggaren, keith_miller, mark.lam, msaboff, saam, sam, tzagallo, webkit-bug-importer | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Bug Depends on: | 226427, 226428, 226431 | ||||||||
Bug Blocks: | |||||||||
Attachments: |
|
Description
Chris Dumez
2021-05-29 20:17:59 PDT
Created attachment 430137 [details]
Patch
Comment on attachment 430137 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=430137&action=review > Source/WTF/wtf/Lock.h:146 > +template<typename LockType> inline void assertIsHeld(const LockType& lock) { ASSERT_UNUSED(lock, lock.isLocked()); } Why is this template needed? What classes is this used on besides Lock? Is a template the best way to do this, or would simple overloading be better? Comment on attachment 430137 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=430137&action=review > Source/WTF/wtf/Condition.h:201 > + assertIsHeld(lock); I had to add an assertIsHeld() here to make clang happy (even though I already marked the whole function as WTF_IGNORES_THREAD_SAFETY_ANALYSIS). I am not sure why but anyway. WTF::Condition is templated and supposed to work with all kind of locks (RecursiveLock comes to mind but this is not limited AFAIK). As a result, I had to add a templated assertIsHeld() so that this would build no matter what lock type the condition is used with. (In reply to Chris Dumez from comment #3) > Comment on attachment 430137 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=430137&action=review > > > Source/WTF/wtf/Condition.h:201 > > + assertIsHeld(lock); > > I had to add an assertIsHeld() here to make clang happy (even though I > already marked the whole function as WTF_IGNORES_THREAD_SAFETY_ANALYSIS). I > am not sure why but anyway. WTF::Condition is templated and supposed to work > with all kind of locks (RecursiveLock comes to mind but this is not limited > AFAIK). > As a result, I had to add a templated assertIsHeld() so that this would > build no matter what lock type the condition is used with. Oh, based on something I just saw online, I may be able to add WTF_IGNORES_THREAD_SAFETY_ANALYSIS on the lambda. Let me try that. If that works, then I wouldn't need this new templated assertIsHeld at all. Created attachment 430140 [details]
Patch
Committed r278257 (238294@main): <https://commits.webkit.org/238294@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 430140 [details]. |