     (go
       (while true
         (let [[[user connector] ch] (alts! [chan (timeout timeout-processing-loop)])]
-          (when (not-nil? user)
-            (swap! busy mark-busy [(get-name user) connector])
+          (when (not-nil? user)            
             (try
               (log/log-info (str "executing collect request for " (get-name user) " and " (.getConnectorInstanceName connector)))
               (collect! user connector)

    (go
      (let [ [v _] (alts! [ch (timeout timeout-collect-reader-release)])
             elapsed (- (System/currentTimeMillis) start-ts) ]
        (swap! busy free [(get-name user) connector])
        (cond
          (nil? v) (log-timeout user connector elapsed)
          (= v Collector/NO_CREDENTIALS) (log-no-credentials user connector elapsed)

(defn online-users
  []
  (filter online? (users)))

; This is the channel for queuing the online user requests
(def online-collector-chan (chan (sliding-buffer collector-chan-size)))
