From a2e043960f6cbe1c80367184bd65c46e9a66a9f9 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Fri, 4 Mar 2022 17:31:28 -0800 Subject: [PATCH 01/14] Update TargetProperty.java. --- org.lflang/src/org/lflang/TargetProperty.java | 28 +++++++++++++++---- .../lflang/generator/c/CCoreFilesUtils.java | 13 +++++++-- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/org.lflang/src/org/lflang/TargetProperty.java b/org.lflang/src/org/lflang/TargetProperty.java index a34ddeb78a..fbcd781bab 100644 --- a/org.lflang/src/org/lflang/TargetProperty.java +++ b/org.lflang/src/org/lflang/TargetProperty.java @@ -47,6 +47,8 @@ import org.lflang.util.StringUtil; import org.lflang.validation.LFValidator; +import com.google.common.collect.ImmutableList; + /** * A target properties along with a type and a list of supporting targets * that supports it, as well as a function for configuration updates. @@ -1311,6 +1313,7 @@ public String toString() { */ public enum SchedulerOption { NP(false), // Non-preemptive + NP2(false, List.of(Path.of("scheduler_NP2.c"), Path.of("worker_assignments.h"), Path.of("worker_states.h"))), GEDF_NP(true), // Global EDF non-preemptive GEDF_NP_CI(true); // Global EDF non-preemptive with chain ID // PEDF_NP(true); // Partitioned EDF non-preemptive (FIXME: To be re-added in a future PR) @@ -1318,17 +1321,30 @@ public enum SchedulerOption { /** * Indicate whether or not the scheduler prioritizes reactions by deadline. */ - private final Boolean prioritizesDeadline; - + private final boolean prioritizesDeadline; + + /** Relative paths to files required by this scheduler. */ + private final List relativePaths; + + SchedulerOption(boolean prioritizesDeadline) { + this(prioritizesDeadline, null); + } + + SchedulerOption(boolean prioritizesDeadline, List relativePaths) { + this.prioritizesDeadline = prioritizesDeadline; + this.relativePaths = relativePaths; + } + /** * Return true if the scheduler prioritizes reactions by deadline. */ - public Boolean prioritizesDeadline() { + public boolean prioritizesDeadline() { return this.prioritizesDeadline; } - - private SchedulerOption(Boolean prioritizesDeadline) { - this.prioritizesDeadline = prioritizesDeadline; + + public List getRelativePaths() { + return relativePaths != null ? ImmutableList.copyOf(relativePaths) : + List.of(Path.of("scheduler_" + this + ".c")); } public static SchedulerOption getDefault() { diff --git a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java index 64ed1169d8..fa758b7b68 100644 --- a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java +++ b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java @@ -1,7 +1,11 @@ package org.lflang.generator.c; import java.io.File; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import org.lflang.TargetProperty.SchedulerOption; /** @@ -112,13 +116,16 @@ private static List getThreadSupportFiles( SchedulerOption scheduler ) { return threading ? - List.of( + Stream.concat( + Stream.of( "threaded/scheduler.h", "threaded/scheduler_instance.h", "threaded/scheduler_sync_tag_advance.c", "threaded/scheduler_" + scheduler + ".c", "threaded/reactor_threaded.c" - ) : - List.of("reactor.c"); + ), + scheduler.getRelativePaths().stream().map(path -> Path.of("threaded").resolve(path).toString()) + ).collect(Collectors.toList()) : + List.of("reactor.c"); } } From b56626f26f0e19172dd9f1f570c6504536480398 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Sat, 5 Mar 2022 17:11:15 -0800 Subject: [PATCH 02/14] [scheduler] Update submodule. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index da27154663..9dc9ff30ad 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit da27154663ceb4c877d896d3009df869759bb8a9 +Subproject commit 9dc9ff30ad32baffc2c2594f88cd6bb8954b5820 From eb632cad0c49a30663ac9692868a43fa68ffe416 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Sat, 5 Mar 2022 23:38:43 -0800 Subject: [PATCH 03/14] [scheduler] Update TargetProperty.java. --- org.lflang/src/org/lflang/TargetProperty.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.lflang/src/org/lflang/TargetProperty.java b/org.lflang/src/org/lflang/TargetProperty.java index fbcd781bab..563c004581 100644 --- a/org.lflang/src/org/lflang/TargetProperty.java +++ b/org.lflang/src/org/lflang/TargetProperty.java @@ -1313,7 +1313,12 @@ public String toString() { */ public enum SchedulerOption { NP(false), // Non-preemptive - NP2(false, List.of(Path.of("scheduler_NP2.c"), Path.of("worker_assignments.h"), Path.of("worker_states.h"))), + NP2(false, List.of( + Path.of("scheduler_NP2.c"), + Path.of("worker_assignments.h"), + Path.of("worker_states.h"), + Path.of("data_collection.h") + )), GEDF_NP(true), // Global EDF non-preemptive GEDF_NP_CI(true); // Global EDF non-preemptive with chain ID // PEDF_NP(true); // Partitioned EDF non-preemptive (FIXME: To be re-added in a future PR) From 7ecc08125f30e0728b12d3b761c63e69ef1697e0 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Sun, 6 Mar 2022 17:28:55 -0800 Subject: [PATCH 04/14] [scheduler] Update submodule. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index 9dc9ff30ad..c046791e40 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 9dc9ff30ad32baffc2c2594f88cd6bb8954b5820 +Subproject commit c046791e400a709a5d52f2e8b9a47f042c4a0dd0 From 863442cc6b945cd8e7d6f6682016ac8d9acbe2c1 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Tue, 8 Mar 2022 00:32:15 -0800 Subject: [PATCH 05/14] [scheduler] Update submodule to experimental version. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index c046791e40..2dad32e5cf 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit c046791e400a709a5d52f2e8b9a47f042c4a0dd0 +Subproject commit 2dad32e5cfa2ca04c303427d98d2136131fc049a From 3eaf44eea41a88beaacdd200ddee1ea992077d8f Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Sun, 20 Mar 2022 14:42:13 -0700 Subject: [PATCH 06/14] [scheduler] Update submodule after optimizing a bit. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index 2dad32e5cf..c046791e40 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 2dad32e5cfa2ca04c303427d98d2136131fc049a +Subproject commit c046791e400a709a5d52f2e8b9a47f042c4a0dd0 From 26c0113223cef752e1c6b46e1921c7f7c283ba60 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Fri, 25 Mar 2022 16:18:25 -0700 Subject: [PATCH 07/14] [scheduler] Rename; update validator. --- org.lflang/src/lib/c/reactor-c | 2 +- org.lflang/src/org/lflang/TargetProperty.java | 8 ++--- .../lflang/generator/c/CCoreFilesUtils.java | 1 - .../org/lflang/validation/LFValidator.java | 30 ++++++++++++------- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index c046791e40..2dc6173fce 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit c046791e400a709a5d52f2e8b9a47f042c4a0dd0 +Subproject commit 2dc6173fce9933474168cf363771fb0c11467482 diff --git a/org.lflang/src/org/lflang/TargetProperty.java b/org.lflang/src/org/lflang/TargetProperty.java index 563c004581..457129d8cd 100644 --- a/org.lflang/src/org/lflang/TargetProperty.java +++ b/org.lflang/src/org/lflang/TargetProperty.java @@ -196,7 +196,7 @@ public enum TargetProperty { * compiled binary. */ EXTERNAL_RUNTIME_PATH("external-runtime-path", PrimitiveType.STRING, - Arrays.asList(Target.CPP), (config, value, err) -> { + List.of(Target.CPP), (config, value, err) -> { config.externalRuntimePath = ASTUtils.elementToSingleString(value); }), @@ -1150,7 +1150,7 @@ public boolean validate(Element e) { * * @param e The element to type check. * @param name The name of the target property. - * @param errors A list of errors to append to if problems are found. + * @param v The validator to which any errors should be reported. */ public void check(Element e, String name, LFValidator v) { if (!this.validate(e)) { @@ -1313,8 +1313,8 @@ public String toString() { */ public enum SchedulerOption { NP(false), // Non-preemptive - NP2(false, List.of( - Path.of("scheduler_NP2.c"), + heuristic(false, List.of( + Path.of("scheduler_heuristic.c"), Path.of("worker_assignments.h"), Path.of("worker_states.h"), Path.of("data_collection.h") diff --git a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java index fa758b7b68..3accd5d1bf 100644 --- a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java +++ b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java @@ -1,5 +1,4 @@ package org.lflang.generator.c; -import java.io.File; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; diff --git a/org.lflang/src/org/lflang/validation/LFValidator.java b/org.lflang/src/org/lflang/validation/LFValidator.java index c07456d2a7..f6e0ab995a 100644 --- a/org.lflang/src/org/lflang/validation/LFValidator.java +++ b/org.lflang/src/org/lflang/validation/LFValidator.java @@ -1049,6 +1049,12 @@ public void checkTargetDecl(TargetDecl target) throws IOException { */ @Check(CheckType.EXPENSIVE) public void checkTargetProperties(KeyValuePairs targetProperties) { + validateFastTargetProperty(targetProperties); + validateClockSyncTargetProperties(targetProperties); + validateSchedulerTargetProperties(targetProperties); + } + + private void validateFastTargetProperty(KeyValuePairs targetProperties) { EList fastTargetProperties = new BasicEList<>(targetProperties.getPairs()); fastTargetProperties.removeIf(pair -> TargetProperty.forName(pair.getName()) != TargetProperty.FAST); KeyValuePair fastTargetProperty = fastTargetProperties.size() > 0 ? fastTargetProperties.get(0) : null; @@ -1066,7 +1072,7 @@ public void checkTargetProperties(KeyValuePairs targetProperties) { break; } } - + // Check for physical actions for (Reactor reactor : info.model.getReactors()) { // Check to see if the program has a physical action in a reactor @@ -1082,7 +1088,9 @@ public void checkTargetProperties(KeyValuePairs targetProperties) { } } } - + } + + private void validateClockSyncTargetProperties(KeyValuePairs targetProperties) { EList clockSyncTargetProperties = new BasicEList<>(targetProperties.getPairs()); // Check to see if clock-sync is defined clockSyncTargetProperties.removeIf(pair -> TargetProperty.forName(pair.getName()) != TargetProperty.CLOCK_SYNC); @@ -1103,9 +1111,10 @@ public void checkTargetProperties(KeyValuePairs targetProperties) { ); } } - + } - EList schedulerTargetProperties = + private void validateSchedulerTargetProperties(KeyValuePairs targetProperties) { + EList schedulerTargetProperties = new BasicEList<>(targetProperties.getPairs()); schedulerTargetProperties.removeIf(pair -> TargetProperty .forName(pair.getName()) != TargetProperty.SCHEDULER); @@ -1117,14 +1126,15 @@ public void checkTargetProperties(KeyValuePairs targetProperties) { if (!TargetProperty.SchedulerOption.valueOf(schedulerName) .prioritizesDeadline()) { // Check if a deadline is assigned to any reaction - if (info.model.getReactors().stream().filter(reactor -> { + // Filter reactors that contain at least one reaction that + // has a deadline handler. + if (info.model.getReactors().stream().anyMatch( // Filter reactors that contain at least one reaction that // has a deadline handler. - return ASTUtils.allReactions(reactor).stream() - .filter(reaction -> { - return reaction.getDeadline() != null; - }).count() > 0; - }).count() > 0) { + reactor -> ASTUtils.allReactions(reactor).stream().anyMatch( + reaction -> reaction.getDeadline() != null + )) + ) { warning("This program contains deadlines, but the chosen " + schedulerName + " scheduler does not prioritize reaction execution " From 8575800cd7dc07a9c0a26da8bcdf1041b45daf53 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Tue, 31 May 2022 11:29:36 -0700 Subject: [PATCH 08/14] [scheduler] Update submodule. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index 2dc6173fce..80a90f0323 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 2dc6173fce9933474168cf363771fb0c11467482 +Subproject commit 80a90f0323b739cc58bd542a36eb49f57c6ebf37 From 45b22645e3b57978ca57cd2e138d96b801c0b11f Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Tue, 31 May 2022 18:06:41 -0700 Subject: [PATCH 09/14] Address path issue. --- .../lflang/generator/c/CCoreFilesUtils.java | 2 +- .../org/lflang/generator/c/CGenerator.java | 22 +++++-------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java index 3accd5d1bf..863483bf69 100644 --- a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java +++ b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java @@ -123,7 +123,7 @@ private static List getThreadSupportFiles( "threaded/scheduler_" + scheduler + ".c", "threaded/reactor_threaded.c" ), - scheduler.getRelativePaths().stream().map(path -> Path.of("threaded").resolve(path).toString()) + scheduler.getRelativePaths().stream().map(path -> "threaded/" + path.toString().replace("\\", "/")) ).collect(Collectors.toList()) : List.of("reactor.c"); } diff --git a/org.lflang/src/org/lflang/generator/c/CGenerator.java b/org.lflang/src/org/lflang/generator/c/CGenerator.java index 60311b5794..aeb186ad9b 100644 --- a/org.lflang/src/org/lflang/generator/c/CGenerator.java +++ b/org.lflang/src/org/lflang/generator/c/CGenerator.java @@ -60,7 +60,6 @@ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY import org.lflang.generator.ActionInstance; import org.lflang.generator.CodeBuilder; import org.lflang.generator.GeneratorBase; -import org.lflang.generator.DockerGeneratorBase; import org.lflang.generator.GeneratorResult; import org.lflang.generator.IntegratedBuilder; import org.lflang.generator.GeneratorUtils; @@ -1077,12 +1076,7 @@ private void pickCompilePlatform() { } } - /** - * Create a launcher script that executes all the federates and the RTI. - * - * @param coreFiles The files from the core directory that must be - * copied to the remote machines. - */ + /** Create a launcher script that executes all the federates and the RTI. */ public void createFederatedLauncher() throws IOException{ var launcher = new FedCLauncher( targetConfig, @@ -1223,7 +1217,7 @@ protected void generateConstructor( /** * Generate the struct type definitions for inputs, outputs, and * actions of the specified reactor. - * @param reactor The parsed reactor data structure. + * @param decl The parsed reactor data structure. */ protected void generateAuxiliaryStructs(ReactorDecl decl) { var reactor = ASTUtils.toDefinition(decl); @@ -1283,7 +1277,7 @@ protected void generateAuxiliaryStructs(ReactorDecl decl) { /** * Generate the self struct type definition for the specified reactor * in the specified federate. - * @param reactor The parsed reactor data structure. + * @param decl The parsed reactor data structure. * @param constructorCode Place to put lines of code that need to * go into the constructor. */ @@ -1495,7 +1489,7 @@ public void generateSelfStructExtension( * These functions have a single argument that is a void* pointing to * a struct that contains parameters, state variables, inputs (triggering or not), * actions (triggering or produced), and outputs. - * @param reactor The reactor. + * @param decl The reactor. * @param federate The federate, or null if this is not * federated or not the main reactor and reactions should be * unconditionally generated. @@ -1518,7 +1512,7 @@ public void generateReactions(ReactorDecl decl, FederateInstance federate) { * a struct that contains parameters, state variables, inputs (triggering or not), * actions (triggering or produced), and outputs. * @param reaction The reaction. - * @param reactor The reactor. + * @param decl The reactor. * @param reactionIndex The position of the reaction within the reactor. */ public void generateReaction(Reaction reaction, ReactorDecl decl, int reactionIndex) { @@ -1825,7 +1819,6 @@ public static String variableStructType(Variable variable, ReactorDecl reactor) * Construct a unique type for the struct of the specified * instance (port or action). * This is required to be the same as the type name returned by - * {@link variableStructType(Variable, ReactorDecl)}. * @param portOrAction The port or action instance. * @return The name of the self struct. */ @@ -1869,8 +1862,6 @@ private void generateTraceTableEntries(ReactorInstance instance) { * Generate code to instantiate the specified reactor instance and * initialize it. * @param instance A reactor instance. - * @param federate A federate instance to conditionally generate code by - * contained reactors or null if there are no federates. */ public void generateReactorInstance(ReactorInstance instance) { var reactorClass = instance.getDefinition().getReactorClass(); @@ -2005,7 +1996,6 @@ private void generateInitializeActionToken(ReactorInstance reactor) { * but for the top-level of a federate, will be a subset of reactions that * is relevant to the federate. * @param instance The reactor instance. - * @param reactions The reactions of this instance. */ public void generateReactorInstanceExtension(ReactorInstance instance) { // Do nothing @@ -2413,7 +2403,7 @@ public String generateNetworkSenderBody( * input port "port" or has it in its sources. If there are only connections to contained * reactors, in the top-level reactor. * - * @param port The port to generate the control reaction for + * @param receivingPortID The ID of the port to generate the control reaction for * @param maxSTP The maximum value of STP is assigned to reactions (if any) * that have port as their trigger or source */ From b6c0971bd810b48f1a3e816beaf9ce5d86eb21ea Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Tue, 31 May 2022 22:13:45 -0700 Subject: [PATCH 10/14] [scheduler] Rename "heuristic" -> "adaptive" --- org.lflang/src/lib/c/reactor-c | 2 +- org.lflang/src/org/lflang/TargetProperty.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index 80a90f0323..c8d697a964 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit 80a90f0323b739cc58bd542a36eb49f57c6ebf37 +Subproject commit c8d697a96471d2f3f1ed292febc617f653e3c54c diff --git a/org.lflang/src/org/lflang/TargetProperty.java b/org.lflang/src/org/lflang/TargetProperty.java index 457129d8cd..fd2df4a896 100644 --- a/org.lflang/src/org/lflang/TargetProperty.java +++ b/org.lflang/src/org/lflang/TargetProperty.java @@ -1313,8 +1313,8 @@ public String toString() { */ public enum SchedulerOption { NP(false), // Non-preemptive - heuristic(false, List.of( - Path.of("scheduler_heuristic.c"), + adaptive(false, List.of( + Path.of("scheduler_adaptive.c"), Path.of("worker_assignments.h"), Path.of("worker_states.h"), Path.of("data_collection.h") From 2aaf0ea831e11e4e78af6ce30b6982c44548c210 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Wed, 1 Jun 2022 14:52:32 -0700 Subject: [PATCH 11/14] [scheduler] Debug test failure. --- org.lflang.tests/src/org/lflang/tests/LFTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/org.lflang.tests/src/org/lflang/tests/LFTest.java b/org.lflang.tests/src/org/lflang/tests/LFTest.java index ba096315ee..3a4a5d6f22 100644 --- a/org.lflang.tests/src/org/lflang/tests/LFTest.java +++ b/org.lflang.tests/src/org/lflang/tests/LFTest.java @@ -1,6 +1,7 @@ package org.lflang.tests; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; @@ -229,8 +230,8 @@ private Thread recordStream(StringBuffer builder, InputStream inputStream) { while ((len = reader.read(buf)) > 0) { builder.append(buf, 0, len); } - } catch (Exception e) { - builder.append("[truncated...]\n"); + } catch (IOException e) { + throw new RuntimeException("While reading from a stream, an I/O exception occurred:\n" + e); } }); t.start(); From 36c2e76fdb75717a825ab4217fe80b74076d0cd0 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Mon, 6 Jun 2022 22:05:03 -0700 Subject: [PATCH 12/14] [scheduler] Update submodule. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index c8d697a964..f1e20d54ac 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit c8d697a96471d2f3f1ed292febc617f653e3c54c +Subproject commit f1e20d54ac75103781ac2e8d4c132424d8072730 From 9969d5fdf6cf5d865865798f272a146566e57afa Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Wed, 8 Jun 2022 23:53:40 -0700 Subject: [PATCH 13/14] [scheduler] Update submodule. --- org.lflang/src/lib/c/reactor-c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.lflang/src/lib/c/reactor-c b/org.lflang/src/lib/c/reactor-c index f1e20d54ac..3e1ab3e048 160000 --- a/org.lflang/src/lib/c/reactor-c +++ b/org.lflang/src/lib/c/reactor-c @@ -1 +1 @@ -Subproject commit f1e20d54ac75103781ac2e8d4c132424d8072730 +Subproject commit 3e1ab3e048c9ee4755ff0a3bc7c8ba1f465c8ade From 607fb2f795225742bd7a037f646dc47cf361b695 Mon Sep 17 00:00:00 2001 From: Peter Donovan Date: Mon, 20 Jun 2022 10:04:20 -0700 Subject: [PATCH 14/14] [scheduler] Address comment from code review. --- org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java index 863483bf69..2126a8a985 100644 --- a/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java +++ b/org.lflang/src/org/lflang/generator/c/CCoreFilesUtils.java @@ -120,7 +120,6 @@ private static List getThreadSupportFiles( "threaded/scheduler.h", "threaded/scheduler_instance.h", "threaded/scheduler_sync_tag_advance.c", - "threaded/scheduler_" + scheduler + ".c", "threaded/reactor_threaded.c" ), scheduler.getRelativePaths().stream().map(path -> "threaded/" + path.toString().replace("\\", "/"))