Branch: refs/heads/master Home: https://github.com/dyninst/dyninst Commit: 6bd68f38b6e0ad9e1c6dfc56e6700a9cdb41c9f9 https://github.com/dyninst/dyninst/commit/6bd68f38b6e0ad9e1c6dfc56e6700a9cdb41c9f9 Author: Tim Haines <thaines.as...@gmail.com> Date: 2020-07-24 (Fri, 24 Jul 2020)
Changed paths: M dyninstAPI/src/pcEventMuxer.C M dyninstAPI/src/pcEventMuxer.h Log Message: ----------- Fix proccontrol hangs in test_thread_X (#780) * Use std::lock_guard throughout PCEventMailbox::enqueue * Check process state before enqueueing * Add more proccontrol logging in PCEventMailbox * Move broadcast to the end to reduce spurious wakeups * Only add events for valid processes PCEventMuxer::wait_internal * Handle errors for Process::handleEvents * Add logging for mailbox size check * Add more loggin in non-blocking path * Add logging for 'handle(NULL)' call * Log successful event completion * Remove unreachable code * Remove unused parameter * Use std::lock_guard PCEventMailbox::dequeue * add logging when returning empty event * Add sanity check for process pointer * add logging on sucessful event dequeue * Ignore post-exit events on invalid processes PCEventMailbox::find * Use standard check for element values This prevents accidental insertion of non-existent keys. * add logging * add sanity check for passed process PCEventMailbox * Change procCount to map PIDs instead of PCProcess* This prevents null pointer issues as well as pointer-reuse in some abnormal situations. _______________________________________________ Dyninst-api mailing list Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api