This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch NLPCRAFT-108
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-108 by this push:
     new c5207b4  WIP.
c5207b4 is described below

commit c5207b496fed6fd6bb7bff81f2922bf4a58aab09
Author: Aaron Radzinski <[email protected]>
AuthorDate: Mon Oct 5 22:38:40 2020 -0700

    WIP.
---
 .../org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala    | 10 ++++++----
 .../scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala  |  8 +++++---
 .../scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala  |  5 +++--
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
index 1b08615..88a3f00 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiProgressBar.scala
@@ -41,6 +41,8 @@ class NCAnsiProgressBar(
     require(dispSize <= totalTicks)
 
     @volatile private var tick = 0
+    
+    private final val mux = new Object()
 
     //noinspection ZeroIndexToHead
     private final val PB_LEFT = s"$B${CHAR_SET(0)}$RST"
@@ -63,7 +65,7 @@ class NCAnsiProgressBar(
     def start(): Unit = {
         tick = 0
 
-        if (useAnsi) out.synchronized {
+        if (useAnsi) mux.synchronized {
             // Hide cursor to avoid blinking.
             out.print(ansiCursorHide)
 
@@ -79,9 +81,9 @@ class NCAnsiProgressBar(
      * Ticks progress bar one tick at a time.
      */
     def ticked(): Unit = {
-        tick += 1
+        mux.synchronized {
+            tick += 1
 
-        out.synchronized {
             if (useAnsi) {
                 clean()
 
@@ -112,7 +114,7 @@ class NCAnsiProgressBar(
      * Stops progress bar.
      */
     def stop(): Unit = {
-        if (useAnsi && clearOnComplete) out.synchronized {
+        if (useAnsi && clearOnComplete) mux.synchronized {
             clean()
 
             // Show cursor.
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala
index 7af9b8f..449e519 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ansi/NCAnsiSpinner.scala
@@ -36,6 +36,8 @@ class NCAnsiSpinner(out: PrintWriter, useAnsi: Boolean = 
true) {
     @volatile private var lastLength = 0
     @volatile private var frame = 0
 
+    private final val mux = new Object()
+
     /**
      *
      * @param p
@@ -73,7 +75,7 @@ class NCAnsiSpinner(out: PrintWriter, useAnsi: Boolean = 
true) {
                 out.flush()
 
                 while (!t.isInterrupted) {
-                    out.synchronized {
+                    mux.synchronized {
                         if (frame > 0)
                             clean()
 
@@ -91,7 +93,7 @@ class NCAnsiSpinner(out: PrintWriter, useAnsi: Boolean = 
true) {
 
             thread.start()
         }
-        else out.synchronized {
+        else mux.synchronized {
             out.print("... ")
             out.flush()
         }
@@ -102,7 +104,7 @@ class NCAnsiSpinner(out: PrintWriter, useAnsi: Boolean = 
true) {
     def stop(): Unit = {
         U.stopThread(thread)
 
-        if (useAnsi && frame > 0) out.synchronized {
+        if (useAnsi && frame > 0) mux.synchronized {
             clean()
 
             // Show cursor.
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index 3aea6d1..417eeef 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -729,8 +729,6 @@ object NCCli extends App {
                     500.ms
                 )
 
-                U.mkThread("server-start-progress-bar", tailer).start()
-
                 var beacon: NCCliServerBeacon = null
                 var online = false
                 val endOfWait = currentTime + 3.mins // We try for 3 mins max.
@@ -1264,6 +1262,9 @@ object NCCli extends App {
 
         parser.setEofOnUnclosedBracket(Bracket.CURLY, Bracket.ROUND, 
Bracket.SQUARE)
         parser.setEofOnUnclosedQuote(true)
+        parser.regexCommand("")
+        parser.regexVariable("")
+        parser.setEscapeChars(Array.empty)
 
         val completer = new Completer {
             private val cmds = CMDS.map(c ⇒ c.name → c.synopsis)

Reply via email to