Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
Author: Chris Lattner
| package controllers | |
| import java.util.Properties | |
| import com.typesafe.config.ConfigFactory | |
| import kafka.consumer.{Consumer, ConsumerConfig, ConsumerConnector, Whitelist} | |
| import kafka.serializer.StringDecoder | |
| import play.api.libs.iteratee.{Enumerator, Iteratee} | |
| import play.api.mvc.{Controller, WebSocket} |
| (ns n01se.externs-for-cljs | |
| (:require [clojure.java.io :as io] | |
| [cljs.compiler :as comp] | |
| [cljs.analyzer :as ana])) | |
| (defn read-file [file] | |
| (let [eof (Object.)] | |
| (with-open [stream (clojure.lang.LineNumberingPushbackReader. (io/reader file))] | |
| (vec (take-while #(not= % eof) | |
| (repeatedly #(read stream false eof))))))) |