Fixed bug with not-removed events
Problem: With Horizon the semantics of cScheduler::getNextEvent() andcSimulator::doOneEvent() where changed. Without Horiozn, getNextEvent()peeked the event in the FES, and doOneEvent() removed it. This waschanged for Horizon, but the cParsimScheduler::getNextEvent() function...
Moved cAsyncModule functionality to cSimpleModule, dropped cAsyncModule
We eliminated the need for special cAsyncModule objectssince it is more convenient to just stick to cSimpleModule in themodel implementation and active Horizon through omnetpp.ini switches....
[nullduration] moved asyncModuleLocks to earlier position and added getProcessingDelay return value that makes the event get handled sequentially:We have to lock before getProcessingDelay is called, and must only be released, once the corresponding event has been handled. This is because in the meantime, other events could alter the module and therefore change the outcome of getProcessingDelay nondeterministically....
[numGen] overloaded method calls in casyncmodule to make numGen-> referenciations unnecessary[nullduration] the barriermessage is now scheduled BEFORE the children of an event
[nullduration] bugfix: correcty insert barriermsgs with their parentID and parentArrivalTime being that of the corresponding event.
[nullduration] BARRIER: the additional barrier information is now always set in the scheduler, although this might not be necessary everytime.
[nullduration]- implemented rest of nullduration algorithm for both barrier based approach as well as NOBARRIER.-- barrier based approach: the barriers are now placed according to ordering-- nobarrier: the comparison operators have been extended
- hopefully fixed cache line size alignment
[master] cosmetic changes
[eefscheduler] split getNextEvent of EEFScheduler in two methods: updateIES and getFirstEvent - updateIES: Fills up the Independent Event Set - getFirstEvent: returns the next event according to EEFScheduling Policy
[eefscheduler] added changes from codereview (minor stuff) and moved scheduler call again from cSimulation to Tkenv and Cmdenv respectively
[eefscheduler] code cleanup
[eefscheduler] the eefscheduler may not be used in the unthreaded case
[eefscheduler] bugfix with barriermsgs and sequential scheduling:- the processingDuration was not set correctly everytime- also now eefscheduler is deleting outdated barriers -> IES may get larger
[eefscheduler] encapsulated getProcessingDelay-call in the getEventDuration() of cMessageThe duration of a message is invalidated in scheduleAt and sendDirect/Delayed
[eefscheduler] added eefscheduler support for NOBARRIER, fixed bug with duration:- one has to make sure that getProcessingDelay() is only called exactly once per simulation of an event. Otherwise timings with random processing delays get mixed up.
[eefscheduler] made cSequentialScheduler work again with NOBARRIER
[eefscheduler] moved barrierwaiting to scheduler- now the scheduler always returns a non barrier event
- added some debug output- fixed taskheap: made operators static, otherwise the wrong operators would be used- fixed t_start assignment in scheduleAt
[eefscheduler] some more code cleanup
[eefscheduler] fixed deadlock,problem was with 0-duration events handled differently in csimulation and cscheduler:eefscheduler now checks mayParallelize
[eefscheduler]made simulation working with cSequentialScheduler (barriercreation is noch fully moved to cScheduler)
[eefscheduler] fixed correct advancing of simtimemoved time advancing from getnextmodule to dooneevent
[eefscheduler] restructured doOneEvent-doOneEvent now has no parameter-getNextEvent now removes elements from the FES/IES-still getting deadlock when IES runs empty
working on EEFScheduler:added EEFScheduler
[eefscheduler] made EEFScheduler work with NOBARRIER disabled
Initial import of Horizon 4 release.