the easiest way (i find) to test if something occurring on another
thread has completed is using a latch:

(deftest mohanr
  (let [latch (CountDownLatch. 1)
        service (Executors/newFixedThreadPool 10)]
    (doseq [x (range 1)
            :let [f (.submit service
                             (proxy [Callable] []
                               (call [] (.countDown latch))))]]
      (is (= true (.await latch 1 TimeUnit/SECONDS))))))

its possible in your code the future isnt yet done, because you check
immediately after submitting the task to the thread pool.

hope that helps...

On Mon, Apr 25, 2011 at 6:27 AM, MohanR <radhakrishnan.mo...@gmail.com> wrote:
> ( deftest teststream
>
>  (def  service ( Executors/newFixedThreadPool 10 ))
>  (dotimes [x 1]
>   (try
>    (def futures (.submit service
>                      ( proxy [Callable][]
>                       ( call
>                         []
>                           ( println "Test" )
>                       )
>               )))
>  ( println ( str "Future is done ? " ( true? ( .isDone futures ) )))
>
>   (catch ExecutionException e
>          ( .cancel futures )
>   )
>   (catch Exception e
>          ( .cancel futures )
>   )
>   )
> ))
>
> This is again a beginner's question.
>
> Why is the future not done here ? I am getting 'false' and I believe
> there are simple mistakes in the code. There is no exception though.
>
> --
> 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 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

Reply via email to