On Wed, Mar 9, 2011 at 7:25 AM, Baishampayan Ghose <b.gh...@gmail.com> wrote: >> Yesterday I was writing a bit of code that needs to wait for an >> external event to happen but if it doesn't happen with X amount of >> time, >> to timeout with an error. >> >> Is there a library to handle this? I know you can do it with a future >> and if you google the general idea, there are a few blog posts, stack >> overflow questions etc that all have the same basic solution. It seems >> like such a common thing to do that there would be a standard >> function/macro out there for it rather than everyone rolling their >> own. I couldn't however find one. >> >> Does one exist? If yes, pointer in the right direction. > > You can roll your own macro to do this. > > Example - > > (defmacro with-timeout [ms & body] > `(let [f# (future ~@body)] > (.get #^java.util.concurrent.Future f# ~ms > java.util.concurrent.TimeUnit/MILLISECONDS))) >
Variation on that macro are what I've seen across the variety of sources I've mentioned in my original message. It just strikes me as odd that something so general hasn't made it into a library. If it really hasn't made a library, ok.. I just wanted to make sure it wasn't in a library somewhere and that keeping the hand rolled macro wasn't something I should still be doing. -- 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