9
0
mirror of https://github.com/Dreeam-qwq/Gale.git synced 2026-01-04 15:31:45 +00:00

Use virtual threads without reflection module opens

This commit is contained in:
Martijn Muijsers
2023-08-11 21:10:12 +02:00
parent 0d1d3d8792
commit dc0ed0d1c7
4 changed files with 15 additions and 21 deletions

View File

@@ -1,23 +1,20 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martijn Muijsers <martijnmuijsers@live.nl>
Date: Mon, 13 Feb 2023 21:18:44 +0100
Subject: [PATCH] Enable virtual threads for development runs
Subject: [PATCH] Enable preview features for development runs
License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
Gale - https://galemc.org
diff --git a/build.gradle.kts b/build.gradle.kts
index 03494958857b254705b1445e1a695e71f88474f7..690ce70b6869f340da001d2f844b36bcca72c002 100644
index c64da95d9374ab00cfd75ead02e88e187e8fc5fc..123c2c1bdc4ba5b887910bc613a43bc60be1c99e 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -198,6 +198,10 @@ fun TaskContainer.registerRunTask(
@@ -198,6 +198,7 @@ fun TaskContainer.registerRunTask(
val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2")
minHeapSize = "${memoryGb}G"
maxHeapSize = "${memoryGb}G"
+ // Gale start - enable virtual threads for development runs
+ jvmArgs("--enable-preview")
+ jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
+ // Gale end - enable virtual threads for development runs
+ jvmArgs("--enable-preview") // Gale - enable preview features for development runs
doFirst {
workingDir.mkdirs()

View File

@@ -29,7 +29,7 @@ index d10c024a7a5c3dd78e624526974d6c6ca2c0fbfb..432731a10443cd7ee62f79693b27e975
}
diff --git a/src/main/java/org/galemc/gale/version/GaleSemanticVersion.java b/src/main/java/org/galemc/gale/version/GaleSemanticVersion.java
new file mode 100644
index 0000000000000000000000000000000000000000..7da3bdd5a341cc6ce2045feaf1d85164fdd2e62b
index 0000000000000000000000000000000000000000..e7ff81841798adf75931b0198c3f69f8680cfc81
--- /dev/null
+++ b/src/main/java/org/galemc/gale/version/GaleSemanticVersion.java
@@ -0,0 +1,37 @@
@@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..7da3bdd5a341cc6ce2045feaf1d85164
+ * The <code>patch</code> version is incremented for small changes that do not affect the goal of any feature,
+ * such as bug fixes, performance improvements or changes in wording.
+ */
+ public static final @NotNull String version = "0.5.2";
+ public static final @NotNull String version = "0.5.3";
+
+ /**
+ * The "<code>major.minor</code>" portion of the {@link #version}.

View File

@@ -13,7 +13,7 @@ As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
diff --git a/build.gradle.kts b/build.gradle.kts
index 6827ccd77dbba737b80bd14456c54fc54f8058f2..5b0693899daede245b43e9e9039cd1d05b9b5849 100644
index 50bb7e538c7493e52b2d1356ef6c89194efa593a..a0237112353240d9c8d0dc733f9176fd7e95f007 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -73,6 +73,7 @@ tasks.withType<JavaCompile> {
@@ -24,10 +24,10 @@ index 6827ccd77dbba737b80bd14456c54fc54f8058f2..5b0693899daede245b43e9e9039cd1d0
}
// Gale end - hide irrelevant compilation warnings
@@ -202,6 +203,7 @@ fun TaskContainer.registerRunTask(
jvmArgs("--enable-preview")
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
// Gale end - enable virtual threads for development runs
@@ -199,6 +200,7 @@ fun TaskContainer.registerRunTask(
minHeapSize = "${memoryGb}G"
maxHeapSize = "${memoryGb}G"
jvmArgs("--enable-preview") // Gale - enable preview features for development runs
+ jvmArgs("--add-modules=jdk.incubator.vector") // Gale - Pufferfish - SIMD support
doFirst {

View File

@@ -1,6 +1,6 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Martijn Muijsers <martijnmuijsers@live.nl>
Date: Wed, 9 Aug 2023 15:04:56 +0200
Date: Wed, 9 Aug 2023 19:12:50 +0200
Subject: [PATCH] Virtual thread support
License: AGPL-3.0 (https://www.gnu.org/licenses/agpl-3.0.html)
@@ -91,10 +91,10 @@ index 0000000000000000000000000000000000000000..12eca4b93797b7f50f333d6cdd93e38b
+}
diff --git a/src/main/java/org/galemc/gale/virtualthread/ReflectionVirtualThreadService.java b/src/main/java/org/galemc/gale/virtualthread/ReflectionVirtualThreadService.java
new file mode 100644
index 0000000000000000000000000000000000000000..07462c644c49dd071e9d43d953b1870199f1c8ce
index 0000000000000000000000000000000000000000..5aad41cf610f16317ef94e1ff1e385c6eb5ee8f2
--- /dev/null
+++ b/src/main/java/org/galemc/gale/virtualthread/ReflectionVirtualThreadService.java
@@ -0,0 +1,79 @@
@@ -0,0 +1,76 @@
+// Gale - virtual thread support
+
+package org.galemc.gale.virtualthread;
@@ -129,13 +129,10 @@ index 0000000000000000000000000000000000000000..07462c644c49dd071e9d43d953b18701
+
+ private ReflectionVirtualThreadService() throws Throwable {
+ this.Thread_ofVirtual_method = Objects.requireNonNull(Thread.class.getMethod("ofVirtual"));
+ this.Thread_ofVirtual_method.setAccessible(true);
+ // The Thread.Builder class
+ var Thread_Builder_class = Objects.requireNonNull(this.Thread_ofVirtual_method.invoke(null).getClass());
+ var Thread_Builder_class = Objects.requireNonNull(Class.forName("java.lang.Thread$Builder"));
+ this.Thread_Builder_factory_method = Objects.requireNonNull(Thread_Builder_class.getMethod("factory"));
+ this.Thread_Builder_factory_method.setAccessible(true);
+ this.Thread_Builder_start_method = Objects.requireNonNull(Thread_Builder_class.getMethod("start", Runnable.class));
+ this.Thread_Builder_start_method.setAccessible(true);
+ }
+
+ @Override