TeeTime issueshttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues2018-02-03T06:17:14+01:00https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/318Support arbitrary scheduling concepts2018-02-03T06:17:14+01:00Christian WulfSupport arbitrary scheduling conceptsRequires a new, dedicated API.Requires a new, dedicated API.Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/320Fix Javadoc for Execution2018-02-03T06:17:14+01:00Christian WulfFix Javadoc for Execution```java
/**
* Creates a new {@link Execution} that skips validating the port connections and uses the default listener.
*
* @param configuration
* to be used for the analysis
*/
public Execution(final T configurati...```java
/**
* Creates a new {@link Execution} that skips validating the port connections and uses the default listener.
*
* @param configuration
* to be used for the analysis
*/
public Execution(final T configuration) {
this(configuration, true);
}
```
Problem: "skips" in Javadoc vs. "true" as defaultVersion 3.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/322Fix README2018-02-03T06:17:14+01:00Christian WulfFix README- Displays old stable version: use a link to the website instead- Displays old stable version: use a link to the website insteadVersion 3.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/352Rename terminateStage2017-12-28T07:23:25+01:00Christian WulfRename terminateStageTo something less dramatic, eg, workCompleted.
Update documentation and javadoc accordingly. See corresponding github issueTo something less dramatic, eg, workCompleted.
Update documentation and javadoc accordingly. See corresponding github issueVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/233Deprecate TerminationStrategy.BY_SIGNAL2017-12-27T22:30:51+01:00Christian WulfDeprecate TerminationStrategy.BY_SIGNALA consumer is identified by its number of input ports. So, we do not need ``TerminationStrategy.BY_SIGNAL``.A consumer is identified by its number of input ports. So, we do not need ``TerminationStrategy.BY_SIGNAL``.Version 3.0Nelson Tavares de SousaNelson Tavares de Sousahttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/333Update wiki w.r.t. terminate-call2017-12-27T22:30:01+01:00Christian WulfUpdate wiki w.r.t. terminate-callThe `terminate()` method for producers are named `terminateStage()` now.The `terminate()` method for producers are named `terminateStage()` now.Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/353Add wiki entry for finishing an execution2017-12-27T22:17:42+01:00Christian WulfAdd wiki entry for finishing an executionStart execution and finish execution. Clarify that Teetime automatically finishes the execution.Start execution and finish execution. Clarify that Teetime automatically finishes the execution.Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/340Update doc for (infinite) producers2017-12-26T20:17:00+01:00Christian WulfUpdate doc for (infinite) producersVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/355Add wiki entry for ``executeNonBlocking``2017-12-26T20:15:48+01:00Christian WulfAdd wiki entry for ``executeNonBlocking``http://teetime-framework.github.io/wiki/Implement-your-own-PF-flavoured-architecturehttp://teetime-framework.github.io/wiki/Implement-your-own-PF-flavoured-architectureVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/280``execute()`` should throw Exception2017-12-23T07:23:29+01:00Christian Wulf``execute()`` should throw ExceptionIt's unhandy to catch checked exceptions in ``execute()``.It's unhandy to catch checked exceptions in ``execute()``.Version 3.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/210Add another scheduling concept: thread pool with task queues2017-12-22T10:36:20+01:00Christian WulfAdd another scheduling concept: thread pool with task queuesto compare with pipe scheduling incl. SPSC scenarioto compare with pipe scheduling incl. SPSC scenarioVersion 3.0https://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/356Set IPipe.hasMore to deprecated2017-12-22T09:48:28+01:00Christian WulfSet IPipe.hasMore to deprecatedVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/337Fix PipelineTest.shouldExecutePipelineCorrectlyManyElements()2017-12-19T16:05:02+01:00Christian WulfFix PipelineTest.shouldExecutePipelineCorrectlyManyElements()The global task pool scheduling does not work correctly when executing stages with reflexive pipes.The global task pool scheduling does not work correctly when executing stages with reflexive pipes.Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/354Add folder for integration tests2017-12-19T16:02:20+01:00Christian WulfAdd folder for integration testsVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/346Pass scheduling strategy to the `Execution`2017-10-20T20:15:35+02:00Christian WulfPass scheduling strategy to the `Execution`Consequence: we then could remove the class `ConfigurationContext`Consequence: we then could remove the class `ConfigurationContext`Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/282Task farm should also be used w/o self-adaptation2017-08-03T12:20:00+02:00Christian WulfTask farm should also be used w/o self-adaptationVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/327Fails: AbstractProducerStageTest.shouldTerminateFiniteAndInfiniteProducer2017-08-03T07:23:32+02:00Christian WulfFails: AbstractProducerStageTest.shouldTerminateFiniteAndInfiniteProducer- https://build.se.informatik.uni-kiel.de/jenkins/job/teetime-nightly-release/974/testReport/teetime.framework/AbstractProducerStageTest/shouldTerminateFiniteAndInfiniteProducer/
- https://build.se.informatik.uni-kiel.de/jenkins/job/teet...- https://build.se.informatik.uni-kiel.de/jenkins/job/teetime-nightly-release/974/testReport/teetime.framework/AbstractProducerStageTest/shouldTerminateFiniteAndInfiniteProducer/
- https://build.se.informatik.uni-kiel.de/jenkins/job/teetime-continuous-check/896/consoleVersion 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/334Traverser's visitor should indicate the direction2017-08-02T07:23:10+02:00Christian WulfTraverser's visitor should indicate the directionSo far, the traverser indicates the direction to continue. However, the logics of the visitor depends on this direction. Hence, the visitor, not the traverser should indicate the direction.So far, the traverser indicates the direction to continue. However, the logics of the visitor depends on this direction. Hence, the visitor, not the traverser should indicate the direction.Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/325Introduction of a Configuration Builder2017-03-29T15:41:26+02:00Sören HenningIntroduction of a Configuration BuilderSee merge request !85See merge request !85Version 3.0Christian WulfChristian Wulfhttps://git.se.informatik.uni-kiel.de/teetime/teetime/-/issues/313Remove NotEnoughInputException and returnNoElement()2017-03-16T10:42:00+01:00Christian WulfRemove NotEnoughInputException and returnNoElement()**Current situation:**
If no element was received by any input port, the executing thread checks for termination. The check checks whether all of the stage's input ports are closed.
**Resulting disadvantages:**
Each stage must ...**Current situation:**
If no element was received by any input port, the executing thread checks for termination. The check checks whether all of the stage's input ports are closed.
**Resulting disadvantages:**
Each stage must be implemented so that it invokes `returnNoElement()` if it does not receive any input element. Thus, the stage developer must ensure this contract which cannot statically be analyzed (with low programming effort). Moreover, `returnNoElement()` interrupts the usual control flow although the stage developer has not written a `return` statement and has not thrown an exception by his own. And all of this is only necessary to **check for termination by consumer stage threads**.
**Proposed Improvement:**
Each stage holds a synchronized counter which indicates the current number of its opened input ports. The update of the counter is performed within the synchronized pipes. (a) and (b) are two examples for realization.
```java
public final void close() {
// (a) numOpenInputPorts = getTargetPort().getOwningStage().getOwningThread().getNumOpenInputPorts().decrementAndGet();
// (b) numOpenInputPorts = getTargetPort().getOwningStage().getNumOpenInputPorts().decrementAndGet();
if (numOpenInputPorts == 0) { getTargetPort().getOwningStage().terminateStage(); }
closed = true; // perhaps not necessary anymore
}
```
**Open problem:**
After termination, the stage must consume all remaining elements of its input ports. How to know when the consumption has finished?
Version 3.0Christian WulfChristian Wulf