Moved inheritance of cNumberGenerator from cAsyncModule to cSimpleModule
We are about to eliminate 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....
[master] enable endSimulation() from threaded context
[master] streamlined templated implementation of locks
[sequencechart] implemented functionality to- write event duration into eventlog- measure event complexity- write event complexity into eventlog- parse complexity in eventlog interface from ievent java JNI
- added EventEndEntry into eventlog data format
[random number generator] clean up: removing unused wrapper methods from cAsyncmodule
[random number generator] made cAsyncmodule inherit from cNumbergenerator as well.
[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] added- runtimeexception when wrong priority is scheduled- NOBARRIER-threadstate now uses UINT_MAX for barriers
[random-number-generator] cAsyncModules now take ini input for RNG seeding- the parameter number-local-rngs specifies how many local random number generators are beeing created for the module- the parameter local-rng-seed takes a string of whitespace-seperated seeds, that are beeing used to seed the corresponding RNG. Example:...
[nullduration] added insertOrder comparison to the NOBARRIER comparison operators in the threadpool. These are necessary because during initialization, the rest of the parameters dont provide an unambigious ordering
[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
[nullduration] fixed the Bugs, Daniel mailed:-- (hoch) INSTALL behauptet NOBARRIER wäre default. in meinem checkoutist dies nicht wahr.
-- (unwichtig) include/cthreadpool.h beginnt mit einer forwarddeclaration von cthreadpool - direkt vor der definition...
[master] thread safe event ordering for EEF scheduler
[core] implemented thread-safe(r) FES ordering
[core] cleanup of execution state handling within casynchmodule
added casts to some atomic type ops varables to avoid compiler warnings
fixed alignment of threadState_t
Replaced ineffective attribute(aligned(...)) keyword with simple yet working manual padding
removed superfluous SPACING variable
This variable was supposed to seperate threadstate_t but was actually never really used.
[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] 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] made valid flag of barriermessage a AO_t
[eefscheduler] encapsulated getProcessingDelay-call in the getEventDuration() of cMessageThe duration of a message is invalidated in scheduleAt and sendDirect/Delayed
[eefscheduler] moved barrierMin from cSimulation to cSpinningthreadpool
[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
[eefscheduler] solved initialization bug of t_start- now using delivd instead of t_start (t_start was redundant to delivd)- removed t_start from code- some code cleanup (some debug output removed..)
[eefscheduler]made simulation working with cSequentialScheduler (barriercreation is noch fully moved to cScheduler)
[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
[omnet-4] code review virtual destr. pure virtual cLock functions code formatting
added cNoLock, cleanup
[horizon-4] added template locks, cNoLock is still missing
cLockedDefaultList and cLockedMsgHeap are now templated.
added some files, testing git commit
Initial import of Horizon 4 release.