Interesting post. Thanks Cedric. '(Devin Walters)
On Jul 6, 2013, at 6:59 PM, Cedric Greevey <cgree...@gmail.com> wrote: > The obvious approach is to use a future or other thread as an intermediary > between the blocking I/O read and a channel, then use !< on the channel in a > go; something like: > > (go > (let [c (chan)] > (future (>!! c (my-blocking-io-read some-stream))) > (let [thingy (!< c) > (do-something-with thingy)))) > > The channel can then be used in alts! and what-not as well, if you want to > react to any of several possible "next things", only one of which is the I/O > read completing and returning a value. > > This *does* suggest making a small async.io library that provides a > nonblocking read operation that returns a channel, and maybe other related > facilities, such as a line-chan that pops line after line from the input I/O > source when read from, byte-chan (for binary files), edn-chan (top level edn > forms read from input), etc. > > > > On Sat, Jul 6, 2013 at 3:23 PM, dennis zhuang <killme2...@gmail.com> wrote: >> It's so cool,great job! >> But i don't find any way to do io blocking operations such as socket.read in >> 'go'. >> Is there a roadmap to make alts! working with java NIO selector that waits >> on socket channels? >> Then we can read/write data with socket/file channel in go without blocking. >> Thanks,it's really awesome! >> >> >> >> >> 2013/7/1 David Pollak <dpollak...@gmail.com> >>> Thanks! >>> >>> >>> On Mon, Jul 1, 2013 at 8:13 AM, Sean Corfield <seancorfi...@gmail.com> >>> wrote: >>>> On Sun, Jun 30, 2013 at 4:42 PM, David Pollak <dpollak...@gmail.com> wrote: >>>> > Looking forward to it >>>> > being published (even as SNAPSHOT) in a Maven repo. >>>> >>>> It's accessible like this: >>>> >>>> (defproject async "0.1.0-SNAPSHOT" >>>> :description "FIXME: write description" >>>> :url "http://example.com/FIXME" >>>> :license {:name "Eclipse Public License" >>>> :url "http://www.eclipse.org/legal/epl-v10.html"} >>>> :repositories {"sonatype-oss-public" >>>> "https://oss.sonatype.org/content/groups/public/"} >>>> :dependencies [[org.clojure/clojure "1.5.1"] >>>> [org.clojure/core.async "0.1.0-SNAPSHOT"]]) >>>> -- >>>> Sean A Corfield -- (904) 302-SEAN >>>> An Architect's View -- http://corfield.org/ >>>> World Singles, LLC. -- http://worldsingles.com/ >>>> >>>> "Perfection is the enemy of the good." >>>> -- Gustave Flaubert, French realist novelist (1821-1880) >>>> >>>> -- >>>> -- >>>> 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/groups/opt_out. >>> >>> -- >>> -- >>> 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/groups/opt_out. >> >> >> >> -- >> 庄晓丹 >> Email: killme2...@gmail.com xzhu...@avos.com >> Site: http://fnil.net >> Twitter: @killme2008 >> >> >> -- >> -- >> 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/groups/opt_out. > > -- > -- > 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/groups/opt_out. > > -- -- 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/groups/opt_out.