From de1c946a3778525207a2adbfd74707ee92fa6c24 Mon Sep 17 00:00:00 2001 From: Autumn Lamonte Date: Sat, 29 Jan 2022 21:56:17 -0600 Subject: [PATCH] Multithread multihead --- src/jexer/backend/MultiBackend.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/jexer/backend/MultiBackend.java b/src/jexer/backend/MultiBackend.java index 56b5a3e..e086799 100644 --- a/src/jexer/backend/MultiBackend.java +++ b/src/jexer/backend/MultiBackend.java @@ -114,8 +114,15 @@ public class MultiBackend implements Backend { multiScreen.flushPhysical(); int n = backends.size(); for (int i = 0; i < n; i++) { - Backend backend = backends.get(Math.min(i, backends.size())); - backend.flushScreen(); + final Backend backend = backends.get(Math.min(i, backends.size())); + // Flush to the physical device on another thread. + (new Thread(new Runnable() { + public void run() { + synchronized (backend.getScreen()) { + backend.flushScreen(); + } + } + })).start(); } }