Skip to content

Commit b6e220d

Browse files
committed
add ProgressiveBufferedReadableCharStream + Decoder + UTF8Decoder + few performance improvements
1 parent 331032d commit b6e220d

31 files changed

+1797
-461
lines changed

net.lecousin.core/src/main/java/net/lecousin/framework/application/libraries/artifacts/maven/MavenPOM.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public Void run() {
8484
return;
8585
}
8686
IO.Readable.Buffered bio = readFile.getResult();
87-
AsyncWork<XMLStreamReader, Exception> startXMLReader = XMLStreamReader.start(bio, bufSize);
87+
AsyncWork<XMLStreamReader, Exception> startXMLReader = XMLStreamReader.start(bio, bufSize, 3);
8888
Reader read = pom.new Reader(startXMLReader, priority, fromRepository, pomFile, pomLoader);
8989
read.startOn(startXMLReader, true);
9090
read.getOutput().listenInline(() -> {

net.lecousin.core/src/main/java/net/lecousin/framework/application/libraries/artifacts/maven/MavenRemoteRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public AsyncWork<List<String>, NoException> getAvailableVersions(String groupId,
8181
bio = (IO.Readable.Buffered)io;
8282
else
8383
bio = new SimpleBufferedReadable(io, 8192);
84-
AsyncWork<XMLStreamReader, Exception> start = XMLStreamReader.start(bio, 5000);
84+
AsyncWork<XMLStreamReader, Exception> start = XMLStreamReader.start(bio, 5000, 4);
8585
AsyncWork<List<String>, NoException> result = new AsyncWork<>();
8686
start.listenAsync(new Task.Cpu.FromRunnable("Read maven-metadata.xml", priority, () -> {
8787
if (!start.isSuccessful()) {

net.lecousin.core/src/main/java/net/lecousin/framework/concurrent/StandaloneTaskPriorityManager.java

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,30 +22,36 @@ public StandaloneTaskPriorityManager() {
2222
private TaskManager taskManager;
2323

2424
@Override
25-
public void setTaskManager(TaskManager taskManager) {
25+
public final void setTaskManager(TaskManager taskManager) {
2626
this.taskManager = taskManager;
2727
}
2828

2929
@Override
30-
public void add(Task<?, ?> task) {
31-
synchronized (this) {
32-
ready[task.priority].addLast(task);
33-
if (nextPriority > task.priority) nextPriority = task.priority;
34-
this.notify();
35-
}
30+
public final synchronized void add(Task<?, ?> task) {
31+
ready[task.priority].addLast(task);
32+
if (nextPriority > task.priority) nextPriority = task.priority;
33+
this.notify();
3634
}
3735

3836
@Override
39-
public boolean remove(Task<?, ?> task) {
40-
synchronized (this) {
41-
return ready[task.priority].removeInstance(task);
42-
}
37+
public final synchronized boolean remove(Task<?, ?> task) {
38+
return ready[task.priority].removeInstance(task);
4339
}
4440

4541
@Override
46-
public Task<?, ?> peekNextOrWait() {
42+
public final Task<?, ?> peekNextOrWait() {
4743
Task<?,?> t;
4844
do {
45+
if (nextPriority < Task.PRIORITY_BACKGROUND) {
46+
t = ready[nextPriority].pollFirst();
47+
if (t == null) {
48+
nextPriority++;
49+
continue;
50+
}
51+
if (nextPriority < Task.PRIORITY_BACKGROUND && t.executeEvery <= 0)
52+
lastIdle = -1;
53+
break;
54+
}
4955
if (nextPriority == Task.NB_PRIORITES) {
5056
if (lastIdle < 0)
5157
lastIdle = System.currentTimeMillis();
@@ -66,21 +72,19 @@ public boolean remove(Task<?, ?> task) {
6672
}
6773
return null;
6874
}
75+
t = ready[Task.PRIORITY_BACKGROUND].pollFirst();
76+
if (t == null) {
77+
nextPriority++;
78+
continue;
79+
}
80+
break;
6981
}
70-
t = ready[nextPriority].pollFirst();
71-
if (t == null) {
72-
nextPriority++;
73-
continue;
74-
}
75-
if (nextPriority < Task.PRIORITY_BACKGROUND && t.executeEvery <= 0)
76-
lastIdle = -1;
77-
break;
7882
} while (true);
7983
return t;
8084
}
8185

8286
@Override
83-
public Task<?, ?> peekNext() {
87+
public final Task<?, ?> peekNext() {
8488
Task<?,?> t;
8589
do {
8690
if (nextPriority == Task.NB_PRIORITES) {
@@ -101,7 +105,7 @@ public boolean remove(Task<?, ?> task) {
101105
}
102106

103107
@Override
104-
public List<Task<?, ?>> removeAllPendingTasks() {
108+
public final List<Task<?, ?>> removeAllPendingTasks() {
105109
LinkedList<Task<?,?>> list = new LinkedList<>();
106110
for (byte p = 0; p < Task.NB_PRIORITES; ++p) {
107111
while (!ready[p].isEmpty())
@@ -111,7 +115,7 @@ public boolean remove(Task<?, ?> task) {
111115
}
112116

113117
@Override
114-
public void forceStop() {
118+
public final void forceStop() {
115119
nextPriority = Task.NB_PRIORITES;
116120
synchronized (ready) {
117121
ready.notifyAll();
@@ -126,7 +130,7 @@ public void forceStop() {
126130
}
127131

128132
@Override
129-
public int getRemainingTasks(boolean includingBackground) {
133+
public final int getRemainingTasks(boolean includingBackground) {
130134
int nb = 0;
131135
synchronized (this) {
132136
for (byte p = 0; p < Task.NB_PRIORITES; ++p) if (includingBackground || p != Task.PRIORITY_BACKGROUND) nb += ready[p].size();
@@ -135,7 +139,7 @@ public int getRemainingTasks(boolean includingBackground) {
135139
}
136140

137141
@Override
138-
public boolean hasRemainingTasks(boolean includingBackground) {
142+
public final boolean hasRemainingTasks(boolean includingBackground) {
139143
synchronized (this) {
140144
for (byte p = 0; p < Task.NB_PRIORITES; ++p)
141145
if (includingBackground || p != Task.PRIORITY_BACKGROUND)

0 commit comments

Comments
 (0)