    (:require [clojure.tools.logging :refer [info error]]
              [clj-tcp.codec :refer [byte-decoder default-encoder buffer->bytes]]
              [clojure.core.async.impl.protocols :as asyncp]
-             [clojure.core.async :refer [chan >!! go >! <! <!! thread timeout alts!! dropping-buffer sliding-buffer]])
+             [clojure.core.async :refer [chan >!! go >! <! <!! thread timeout alts!! dropping-buffer sliding-buffer close!]])
    (:import  
             
             [clj_tcp.util PipelineUtil]

		              (do 
                           (write-poison local-client)
			               (.set ^AtomicBoolean (:closed local-client) true)
			               (>!! error-ch [v o]) ;send the error channel)
                (catch Exception e (error e e))))
             (do
		          (if (instance? Poison v)

  (catch Exception e (do
                       (error e e)
                       (>!! internal-error-ch [e 1])
                       nil
                       )))))
    
(defn read-print-ch [n ch]
  (go 
