[racerd] folly spinlock models

Summary: Add models for folly::SpinLock and folly::SpinLockGuard

Reviewed By: jberdine

Differential Revision: D10194130

fbshipit-source-id: e56d0ad81
master
Nikos Gorogiannis 6 years ago committed by Facebook Github Bot
parent 78505af836
commit 309ce2d362

@ -52,15 +52,17 @@ let get_lock =
; "folly::RWSpinLock::lock_shared" ; "folly::RWSpinLock::lock_shared"
; "folly::SharedMutexImpl::lockExclusiveImpl" ; "folly::SharedMutexImpl::lockExclusiveImpl"
; "folly::SharedMutexImpl::lockSharedImpl" ; "folly::SharedMutexImpl::lockSharedImpl"
; "folly::SpinLock::lock"
; "std::lock"
; "std::mutex::lock" ; "std::mutex::lock"
; "std::unique_lock::lock" ; "std::unique_lock::lock" ]
; "std::lock" ]
in in
let matcher_lock_constructor = let matcher_lock_constructor =
QualifiedCppName.Match.of_fuzzy_qual_names QualifiedCppName.Match.of_fuzzy_qual_names
[ "std::lock_guard::lock_guard" [ "folly::LockedPtr::LockedPtr"
; "std::unique_lock::unique_lock" ; "folly::SpinLockGuard::SpinLockGuard"
; "folly::LockedPtr::LockedPtr" ] ; "std::lock_guard::lock_guard"
; "std::unique_lock::unique_lock" ]
in in
fun pname actuals -> fun pname actuals ->
QualifiedCppName.Match.match_qualifiers matcher_lock (Typ.Procname.get_qualifiers pname) QualifiedCppName.Match.match_qualifiers matcher_lock (Typ.Procname.get_qualifiers pname)
@ -72,23 +74,25 @@ let get_lock =
let matcher = let matcher =
QualifiedCppName.Match.of_fuzzy_qual_names QualifiedCppName.Match.of_fuzzy_qual_names
[ "apache::thrift::concurrency::ReadWriteMutex::release" [ "apache::thrift::concurrency::ReadWriteMutex::release"
; "folly::LockedPtr::~LockedPtr"
; "folly::MicroSpinLock::unlock" ; "folly::MicroSpinLock::unlock"
; "folly::RWSpinLock::unlock" ; "folly::RWSpinLock::unlock"
; "folly::RWSpinLock::unlock_shared" ; "folly::RWSpinLock::unlock_shared"
; "folly::SharedMutexImpl::unlock" ; "folly::SharedMutexImpl::unlock"
; "folly::SharedMutexImpl::unlock_shared" ; "folly::SharedMutexImpl::unlock_shared"
; "folly::SpinLock::unlock"
; "folly::SpinLockGuard::~SpinLockGuard"
; "std::lock_guard::~lock_guard" ; "std::lock_guard::~lock_guard"
; "std::mutex::unlock" ; "std::mutex::unlock"
; "std::unique_lock::unlock" ; "std::unique_lock::unlock"
; "std::unique_lock::~unique_lock" ; "std::unique_lock::~unique_lock" ]
; "folly::LockedPtr::~LockedPtr" ]
in in
fun pname -> fun pname ->
QualifiedCppName.Match.match_qualifiers matcher (Typ.Procname.get_qualifiers pname) QualifiedCppName.Match.match_qualifiers matcher (Typ.Procname.get_qualifiers pname)
and is_cpp_trylock = and is_cpp_trylock =
let matcher = let matcher =
QualifiedCppName.Match.of_fuzzy_qual_names QualifiedCppName.Match.of_fuzzy_qual_names
["std::unique_lock::owns_lock"; "std::unique_lock::try_lock"] ["folly::SpinLock::try_lock"; "std::unique_lock::owns_lock"; "std::unique_lock::try_lock"]
in in
fun pname -> fun pname ->
QualifiedCppName.Match.match_qualifiers matcher (Typ.Procname.get_qualifiers pname) QualifiedCppName.Match.match_qualifiers matcher (Typ.Procname.get_qualifiers pname)

Loading…
Cancel
Save