The use of pthread_cancel in DPDK is problematic since cancel is implemented as signal in Linux and TerminateThread in Windows. Using pthread_cancel also exposes the internals of rte_thread_t to drivers which limits potential ABI changes.
This patchset shows how the same effect can be had in most places by using either existing flag variables or the semantics of sockets/pipes used to communicate with the thread. This RFC because it doesn't cover all uses of pthread_cancel, in the final version pthread_cancel will be gone and flagged as error in checkpatch; and the patches hit multiple drivers which require special hardware. Stephen Hemminger (6): eal: avoid using pthread_cancel eventdev: avoid use of pthread_cancel raw/ifpga: avoid use of pthread_cancel dma/skeleton: avoid use of pthread_cancel intel/ipn3ke: avoid use of pthread_cancel intel/iavf: remove use of pthread_cancel drivers/dma/skeleton/skeleton_dmadev.c | 5 +--- drivers/net/intel/iavf/iavf_vchnl.c | 8 +++---- drivers/net/intel/ipn3ke/ipn3ke_representor.c | 8 ++----- drivers/raw/ifpga/ifpga_rawdev.c | 8 +------ lib/eal/common/eal_common_proc.c | 24 +++++-------------- lib/eventdev/rte_event_eth_rx_adapter.c | 21 ++++++++-------- 6 files changed, 25 insertions(+), 49 deletions(-) -- 2.47.3

