71564b4d83
We add the new Qutex acquisision history tracker that allows us to dynamically detect qutex gridlocks. We've integrated it into LockerAndInvoker::operator() in a preliminary way. We also moved all of the trace*ForGridlockOn() methods into the new QutexAcquisitionHistoryTracker singleton class. They're more appropriately located there. They're still unimplemented though.
49 lines
1.1 KiB
CMake
49 lines
1.1 KiB
CMake
# Include Flex/Bison generation rules
|
|
include(${CMAKE_SOURCE_DIR}/cmake/flexYacc.cmake)
|
|
|
|
# Consolidated smocore library with all source files
|
|
add_library(smocore STATIC
|
|
# Core files
|
|
mind.cpp
|
|
opts.cpp
|
|
componentThread.cpp
|
|
component.cpp
|
|
painfulQuale.cpp
|
|
qutex.cpp
|
|
lockerAndInvokerBase.cpp
|
|
lockSet.cpp
|
|
serializedAsynchronousContinuation.cpp
|
|
qutexAcquisitionHistoryTracker.cpp
|
|
|
|
# Body
|
|
body/body.cpp
|
|
|
|
# Marionette
|
|
marionette/main.cpp
|
|
marionette/salmanoff.cpp
|
|
marionette/lifetime.cpp
|
|
marionette/qualeEvent.cpp
|
|
|
|
# DeviceManager
|
|
deviceManager/deviceManager.cpp
|
|
deviceManager/deviceReattacher.cpp
|
|
deviceManager/deviceAttachmentPipeSpecParser.cpp
|
|
${LEX_OUTPUT}
|
|
${YACC_OUTPUT}
|
|
|
|
# SenseApis
|
|
senseApis/senseApiManager.cpp
|
|
|
|
# MindManager
|
|
mindManager/mindManager.cpp
|
|
)
|
|
|
|
target_include_directories(smocore PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
)
|
|
|
|
# Link against pthread for CPU affinity functions
|
|
find_package(Threads REQUIRED)
|
|
target_link_libraries(smocore PRIVATE Threads::Threads)
|