forked from j62/ctbrec
1
0
Fork 0

Make sure the reader thread is ready before sending any commands

This commit is contained in:
0xboobface 2019-01-21 15:34:18 +01:00
parent 3a83943130
commit 7b2f30474a
2 changed files with 9 additions and 1 deletions

View File

@ -31,6 +31,7 @@ public class ExternalBrowser implements AutoCloseable {
private Socket socket;
private Thread reader;
private volatile boolean stopped = true;
private Object ready = new Object();
public static ExternalBrowser getInstance() {
return INSTANCE;
@ -51,6 +52,9 @@ public class ExternalBrowser implements AutoCloseable {
LOG.debug("Browser started");
connectToRemoteControlSocket();
synchronized (ready) {
ready.wait();
}
if(LOG.isTraceEnabled()) {
LOG.debug("Connected to remote control server. Sending config {}", jsonConfig);
} else {
@ -131,9 +135,12 @@ public class ExternalBrowser implements AutoCloseable {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
synchronized (ready) {
ready.notify();
}
while( !Thread.interrupted() && (line = br.readLine()) != null ) {
LOG.debug(line);
if(!line.startsWith("{")) {
System.err.println(line);
} else {
if(messageListener != null) {
messageListener.accept(line);

View File

@ -27,6 +27,7 @@
<appender-ref ref="FILE" />
</root>
<logger name="ctbrec.ui.ExternalBrowser" level="DEBUG"/>
<logger name="ctbrec.LoggingInterceptor" level="INFO"/>
<logger name="ctbrec.recorder.Chaturbate" level="INFO" />
<logger name="ctbrec.recorder.server.HlsServlet" level="INFO"/>