Please note that if you use core.async with java.nio, you need to make sure 
backpressure is properly propagated (this happens automatically with 
java.io, assuming you have a thread per connection).

On Sunday, October 5, 2014 9:10:24 PM UTC-7, adrian...@mail.yu.edu wrote:
>
> Zach makes an excellent point; I've used AsyncSocketChannels and its irk (
> http://docs.oracle.com/javase/8/docs/api/java/nio/channels/AsynchronousServerSocketChannel.html),
>  
> with core.async in the past. Perhaps replacing your direct java.net.Sockets 
> with nio classes that can be given CompletionHandlers (
> http://docs.oracle.com/javase/7/docs/api/java/nio/channels/CompletionHandler.html)
>  
> would be a better fit. 
>
> On Sunday, October 5, 2014 11:57:18 PM UTC-4, Zach Tellman wrote:
>>
>> If I'm reading this correctly, you're using non-blocking thread pools for 
>> blocking operations on the sockets.  Given more than N connections (last 
>> time I looked the thread pool's size was 42), you risk deadlock or at the 
>> very least poor average throughput.
>>
>> On Sunday, October 5, 2014 7:06:56 PM UTC-7, Brian Guthrie wrote:
>>>
>>> Hi all,
>>>
>>> I'm releasing a little library for working with sockets. Feedback and 
>>> pull requests gratefully appreciated.
>>>
>>> The skinny
>>> ---------------
>>>
>>> This library allows you to create socket servers and socket clients and 
>>> interact with them asynchronously using channels. Servers return a record 
>>> with a :connections field, a channel which yields one socket per incoming 
>>> connection. Clients return the same socket record. Socket records each have 
>>> an :in and :out channel each which allow you to receive and send data 
>>> respectively on a line-by-line basis. The raw java.net.Socket is also 
>>> available (as :socket).
>>>
>>> Servers and clients are defined using the Component framework and must 
>>> be explicitly started using (component/start <server-or-client>), though 
>>> sockets will clean up after themselves if they are terminated for some 
>>> reason.
>>>
>>> Further information is available on Github here: 
>>> https://github.com/bguthrie/async-sockets
>>>
>>> Releases
>>> --------------
>>>
>>> This is the first release, which I've tagged for now as 0.0.1-SNAPSHOT. 
>>> Leiningen dependency: [com.gearswithingears/async-sockets "0.0.1-SNAPSHOT"].
>>>
>>> If this is useful to you, please let me know, but any and all feedback 
>>> is great.
>>>
>>> Happy hacking,
>>>
>>> Brian
>>> @bguthrie
>>> btgu...@gmail.com
>>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to