Make Schedulers::single use client thread

This commit is contained in:
Lucwousin
2019-12-15 01:21:52 +01:00
parent 1117eba620
commit 60f26a8c41
8 changed files with 18 additions and 11 deletions

View File

@@ -53,7 +53,7 @@ public class ClientSessionManager
{
sessionClient.openSession()
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.subscribe(this::setUuid, this::error);
}
@@ -68,7 +68,7 @@ public class ClientSessionManager
sessionClient.pingSession(sessionId)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.doOnError(this::error)
.subscribe();
}
@@ -79,7 +79,7 @@ public class ClientSessionManager
{
sessionClient.delete(sessionId)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.doOnError(this::error)
.subscribe();

View File

@@ -258,7 +258,7 @@ public class RuneLite
final ClientLoader clientLoader = new ClientLoader(options.valueOf(updateMode));
Completable.fromAction(clientLoader::get)
.subscribeOn(Schedulers.single())
.subscribeOn(Schedulers.computation())
.subscribe();
Completable.fromAction(ClassPreloader::preload)

View File

@@ -25,6 +25,8 @@
package net.runelite.client.callback;
import com.google.inject.Inject;
import io.reactivex.plugins.RxJavaPlugins;
import io.reactivex.schedulers.Schedulers;
import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.Executor;
@@ -45,6 +47,12 @@ public class ClientThread implements Executor
@Nullable
private Client client;
@Inject
private ClientThread()
{
RxJavaPlugins.setSingleSchedulerHandler(old -> Schedulers.from(this));
}
public void invoke(Runnable r)
{
invoke(() ->

View File

@@ -93,7 +93,7 @@ public class HydraPlugin extends Plugin
private boolean inHydraInstance;
private int lastAttackTick;
@Inject
private Client client;

View File

@@ -185,9 +185,8 @@ public class BlackjackPlugin extends Plugin
@Override
public boolean matches(MenuEntry entry)
{
return
Text.removeTags(entry.getTarget(), true).equalsIgnoreCase(this.getTarget()) &&
entry.getOption().equalsIgnoreCase(this.getOption());
return entry.getOption().equalsIgnoreCase(this.getOption()) &&
Text.removeTags(entry.getTarget(), true).equalsIgnoreCase(this.getTarget());
}
}
}

View File

@@ -1025,7 +1025,7 @@ public class ChatCommandsPlugin extends Plugin
ItemPrice item = retrieveFromList(results, search);
CLIENT.lookupItem(item.getId())
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.subscribe(
(osbresult) ->
{

View File

@@ -362,7 +362,7 @@ public class ExaminePlugin extends Plugin
int finalQuantity = quantity;
CLIENT.lookupItem(id)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.subscribe(
(osbresult) ->
{

View File

@@ -605,7 +605,7 @@ public class GrandExchangePlugin extends Plugin
{
CLIENT.lookupItem(itemId)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.from(clientThread))
.observeOn(Schedulers.single())
.subscribe(
(osbresult) ->
{