Changeset d76161
- Timestamp:
- Jul 2, 2012, 7:54:13 AM (12 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 3eb035
- Parents:
- bc1625
- git-author:
- Frederik Heber <heber@…> (04/24/12 10:36:30)
- git-committer:
- Frederik Heber <heber@…> (07/02/12 07:54:13)
- Location:
- src/Fragmentation/Automation
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Fragmentation/Automation/FragmentQueue.cpp
rbc1625 rd76161 105 105 FragmentJob::ptr FragmentQueue::popJob() 106 106 { 107 OBSERVE;108 NOTIFY(JobRemoved);109 107 ASSERT(jobs.size(), 110 108 "FragmentQueue::popJob() - there are no jobs on the queue."); -
src/Fragmentation/Automation/FragmentQueue.hpp
rbc1625 rd76161 37 37 ~FragmentQueue(); 38 38 39 /** Channels for this observable. 40 * 41 * \note Be especially cautious of cyclic updates here as the updates are 42 * used by \ref FragmentScheduler to send new jobs to idle workers! 43 * If e.g. JobRemoved is added, then the popping of the job inside 44 * the callback will cause a cycle in the update, as the notification 45 * for JobAdded is not yet removed because we are still inside the 46 * callback! 47 */ 39 48 enum NotificationType { 40 49 JobAdded, 41 JobRemoved,42 50 NotificationType_MAX // denotes the maximum of available notification types 43 51 }; -
src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.cpp
rbc1625 rd76161 51 51 queue = new FragmentQueue(); 52 52 addobserver = new NotificationObserver(queue->getChannel(FragmentQueue::JobAdded)); 53 removeobserver = new NotificationObserver(queue->getChannel(FragmentQueue::JobRemoved));54 53 55 54 // and sign on 56 55 queue->signOn(addobserver, FragmentQueue::JobAdded); 57 queue->signOn(removeobserver, FragmentQueue::JobRemoved);58 56 } 59 57 … … 62 60 { 63 61 queue->signOff(addobserver, FragmentQueue::JobAdded); 64 queue->signOff(removeobserver, FragmentQueue::JobRemoved);65 62 66 63 delete queue; 67 delete removeobserver;68 64 delete addobserver; 69 65 } … … 90 86 #endif 91 87 CPPUNIT_ASSERT( addobserver->wasNotified ); 92 CPPUNIT_ASSERT( !removeobserver->wasNotified );93 88 addobserver->wasNotified = false; 94 89 … … 118 113 #endif 119 114 CPPUNIT_ASSERT( !addobserver->wasNotified ); 120 CPPUNIT_ASSERT( removeobserver->wasNotified );121 115 CPPUNIT_ASSERT( poppedJob == testJob ); 122 116 -
src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.hpp
rbc1625 rd76161 44 44 FragmentQueue *queue; 45 45 NotificationObserver *addobserver; 46 NotificationObserver *removeobserver;47 46 }; 48 47
Note:
See TracChangeset
for help on using the changeset viewer.