Merge pull request #3688 from RosettaCommons/jflat06/interactive_events_refactor
Foldit: Refactor event/state system to be consistent with the standalone refactor
Merge pull request #3766 from RosettaCommons/roccomoretti/interactive_fix_unit_tests
Foldit: Fix unit test for Foldit
This fixes some of the broken unit tests in interactive/develop.
Merge pull request #3686 from RosettaCommons/roccomoretti/interactive_thread_safety_analysis
Foldit: Enable ThreadSafetyAnalysis and fix issues related there-to
This adds a (Linux Clang) build which looks at thread safety issues. To enable this, various annotations are made. (For normal builds these annotations are empty defines.) Right now it's just the GUI mutex which is so annotated, and mainly for pose access issues.
* HOLD_GUI_MUTEX_TO_USE and HOLD_GUI_MUTEX_TO_DEREF -- annotations for data members, indicating that the GUI mutex should be held to access/dereference data.
* NEEDS_GUI_MUTEX_LOCKED -- annotation for functions, indicating that the function assumes that the gui mutex is being held by the caller.
Merge pull request #3661 from RosettaCommons/roccomoretti/interactive_win_extended_thread_info
Foldit: Better diagnostics with Windows thread issues.
We're getting a smattering of "Can't start thread" errors on Windows. This is likely an issue with the user's computer, but it'd be nice to have more info about it. Grab additional information from the OS and return that in the crash report.
Merge pull request #3651 from RosettaCommons/roccomoretti/interactive_wrapped_pose_pointer
Foldit: Fixup issues with WrappedPoseAP usage
To help correct some of the pose lifetime issues which may be behind a class of crashes we're seeing, change most of the WrappedPoseAP usage to WrappedPoseOP. In addition, convert from intrusive refpointer to boost/std shared_ptr usage.
This doesn't completely address the lifetime issue, but it helps.
Merge pull request #3648 from RosettaCommons/roccomoretti/dd_bugfix
Foldit: Fixes for various issues which affect drug design puzzles.
RELEASE NOTES:
* Better handling of molecules in small molecule design puzzles, leading to fewer crashes and fewer unwarranted "Modification is not chemically feasible!" messages.
* Various crash fixes.
Merge pull request #3649 from RosettaCommons/roccomoretti/interactive_fix_mixed_disulfides
Foldit: Fix crash with mixed disulfides.
We were getting a fair number of crashes due to 'unknown atom_name: SG in residue CYS'.
This looks to be due to a location in src/interactive/util/ReferencePoseInfo.cc
which may be crashing when it gets a pose with mixed centroid/fullatom residue types.
Fix this by skipping the detection in cases where we have mixed modes.