Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-16 Thread Laurent PETIT
2012/11/16 Jim - FooBar(); jimpil1...@gmail.com

 Wow! Unbelievable !

 So there is nothing wrong with my code?
 After reading this thread, it seems like a serious issue...the entire repl
 becomes  unusable which greatly limits the interactive experience.

 But then,

 what happens in Eclipse?



Hello,

As I said, the last version of Counterclockwise, now released as stable
0.10.2, does not suffer from this problem anymore : Eclipse does not hang.

The server, however, does not respond (and that's to be expected), with the
exit on close version.

I urge you to upgrade your Counterclockwise, if not already done ;-)

Cheers,

-- 
Laurent

-- 
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

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-15 Thread Karsten Schmidt
Hi Jim, isn't that just due to the fact that closing the Swing frame
kills the nrepl server JVM, but not the REPL client?

Also discussed here:
https://groups.google.com/forum/?fromgroups=#!topic/leiningen/QLcZIK2e5C0

I agree, it's annoying, but not sure how to workaround it? Maybe with
a heartbeat between nrepl client/server with the client closing the
repl session if the heartbeat been missing for x seconds...

Hth! K.


On 13 November 2012 23:25, Jim - FooBar(); jimpil1...@gmail.com wrote:
 The original project is already on github...I just committed the dummy
 namespace as well so you can have a look...
 so, do:

 git clone https://github.com/jimpil/Clondie24.git
 cd Clondie24
 lein2 repl

 (load-file Clondie24.games.dummy.clj)
 (ns Clondie24.games.dummy)
 (-main)

 then close the frame without doing anything and try evaluating anything (e.g
 (:name details)).
 it goes without saying that the same thing happens in all other proper games
 as well...

 thanks a million for looking into this :-)

 Jim



 On 13/11/12 22:35, Laurent PETIT wrote:

 Could you create a small lein2 project on github with what you
 previously pasted in this thread correctly spread over files, etc., so
 that it's really quick to reproduce the error?

 Thanks,

 Laurent

 Sent from a smartphone, please excuse the brevity/typos.

 Le 13 nov. 2012 ą 22:52, Jim - FooBar(); jimpil1...@gmail.com a écrit
 :

 On 13/11/12 21:45, Dave Ray wrote:

 Dump the JVM's threads [1] and see what it's stuck on?

 What am I looking for? I don't see anything related with my project...IT
 is pretty obvious from the output though that everything is waiting! No clue
 what though...

 Jim

 -

 2012-11-13 21:47:16
 Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode):

 Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on
 condition [0x7f4258338000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d270 (a
 java.util.concurrent.SynchronousQueue$TransferStack)
 at
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
 at
 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
 at
 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
 at
 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
 clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)
 at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
 at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
 at clojure.lang.AFn.run(AFn.java:24)
 at java.lang.Thread.run(Thread.java:722)

 NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000
 nid=0x1fc5 in Object.wait() [0x7f4258439000]
java.lang.Thread.State: WAITING (on object monitor)
 at java.lang.Object.wait(Native Method)
 - waiting on 0xc286b100 (a
 jline.internal.NonBlockingInputStream)
 at
 jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)
 - locked 0xc286b100 (a
 jline.internal.NonBlockingInputStream)
 at java.lang.Thread.run(Thread.java:722)

 process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf waiting
 on condition [0x7f4258461000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d7e8 (a
 java.util.concurrent.SynchronousQueue$TransferStack)
 at
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
 at
 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
 at
 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
 at
 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
 at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at java.lang.Thread.run(Thread.java:722)

 clojure-agent-send-off-pool-3 prio=10 tid=0x7f4214005000 nid=0x1fbd
 runnable [0x7f425856]
java.lang.Thread.State: RUNNABLE
 at java.net.PlainSocketImpl.socketAccept(Native Method)
 at
 java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
 at java.net.ServerSocket.implAccept(ServerSocket.java:522)
 at java.net.ServerSocket.accept(ServerSocket.java:490)
 at clojure.tools.nrepl.server$accept_connection.invoke(server.clj:32)
 at clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1822)
 at clojure.lang.AFn.applyToHelper(AFn.java:161)
 at 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-15 Thread Jim - FooBar();

Wow! Unbelievable !

So there is nothing wrong with my code?
After reading this thread, it seems like a serious issue...the entire 
repl becomes  unusable which greatly limits the interactive experience.


But then,

what happens in Eclipse? the same principle applies? From my experience 
with Java I know that eclipse spawns a new VM every time you run a 
projectwhat's happening there? why does eclipse crash completely?


btw, thanks for spotting this :-) ...at least now i can stop fiddling 
with my code and start looking for a workaround towards the right 
direction. Hiding the frame temporarily, would allow me to at least work 
easier. I'll try tomorrow...


Jim



On 15/11/12 22:42, Karsten Schmidt wrote:

Hi Jim, isn't that just due to the fact that closing the Swing frame
kills the nrepl server JVM, but not the REPL client?

Also discussed here:
https://groups.google.com/forum/?fromgroups=#!topic/leiningen/QLcZIK2e5C0

I agree, it's annoying, but not sure how to workaround it? Maybe with
a heartbeat between nrepl client/server with the client closing the
repl session if the heartbeat been missing for x seconds...

Hth! K.


On 13 November 2012 23:25, Jim - FooBar(); jimpil1...@gmail.com wrote:

The original project is already on github...I just committed the dummy
namespace as well so you can have a look...
so, do:

git clone https://github.com/jimpil/Clondie24.git
cd Clondie24
lein2 repl

(load-file Clondie24.games.dummy.clj)
(ns Clondie24.games.dummy)
(-main)

then close the frame without doing anything and try evaluating anything (e.g
(:name details)).
it goes without saying that the same thing happens in all other proper games
as well...

thanks a million for looking into this :-)

Jim



On 13/11/12 22:35, Laurent PETIT wrote:

Could you create a small lein2 project on github with what you
previously pasted in this thread correctly spread over files, etc., so
that it's really quick to reproduce the error?

Thanks,

Laurent

Sent from a smartphone, please excuse the brevity/typos.

Le 13 nov. 2012 ą 22:52, Jim - FooBar(); jimpil1...@gmail.com a écrit
:


On 13/11/12 21:45, Dave Ray wrote:

Dump the JVM's threads [1] and see what it's stuck on?

What am I looking for? I don't see anything related with my project...IT
is pretty obvious from the output though that everything is waiting! No clue
what though...

Jim

-

2012-11-13 21:47:16
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode):

Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on
condition [0x7f4258338000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d270 (a
java.util.concurrent.SynchronousQueue$TransferStack)
 at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
 at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
 at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
 at
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)
 at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
 at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
 at clojure.lang.AFn.run(AFn.java:24)
 at java.lang.Thread.run(Thread.java:722)

NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000
nid=0x1fc5 in Object.wait() [0x7f4258439000]
java.lang.Thread.State: WAITING (on object monitor)
 at java.lang.Object.wait(Native Method)
 - waiting on 0xc286b100 (a
jline.internal.NonBlockingInputStream)
 at
jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)
 - locked 0xc286b100 (a
jline.internal.NonBlockingInputStream)
 at java.lang.Thread.run(Thread.java:722)

process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf waiting
on condition [0x7f4258461000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d7e8 (a
java.util.concurrent.SynchronousQueue$TransferStack)
 at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
 at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
 at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
 at
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
 at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
 at 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-15 Thread Jim - FooBar();
Oops! I can use :dispose instead of :exit. If it does what it implies, 
it should do the job...


Jim

On 15/11/12 23:29, Jim - FooBar(); wrote:

Wow! Unbelievable !

So there is nothing wrong with my code?
After reading this thread, it seems like a serious issue...the entire 
repl becomes  unusable which greatly limits the interactive experience.


But then,

what happens in Eclipse? the same principle applies? From my 
experience with Java I know that eclipse spawns a new VM every time 
you run a projectwhat's happening there? why does eclipse crash 
completely?


btw, thanks for spotting this :-) ...at least now i can stop fiddling 
with my code and start looking for a workaround towards the right 
direction. Hiding the frame temporarily, would allow me to at least 
work easier. I'll try tomorrow...


Jim



On 15/11/12 22:42, Karsten Schmidt wrote:

Hi Jim, isn't that just due to the fact that closing the Swing frame
kills the nrepl server JVM, but not the REPL client?

Also discussed here:
https://groups.google.com/forum/?fromgroups=#!topic/leiningen/QLcZIK2e5C0 



I agree, it's annoying, but not sure how to workaround it? Maybe with
a heartbeat between nrepl client/server with the client closing the
repl session if the heartbeat been missing for x seconds...

Hth! K.


On 13 November 2012 23:25, Jim - FooBar(); jimpil1...@gmail.com wrote:

The original project is already on github...I just committed the dummy
namespace as well so you can have a look...
so, do:

git clone https://github.com/jimpil/Clondie24.git
cd Clondie24
lein2 repl

(load-file Clondie24.games.dummy.clj)
(ns Clondie24.games.dummy)
(-main)

then close the frame without doing anything and try evaluating 
anything (e.g

(:name details)).
it goes without saying that the same thing happens in all other 
proper games

as well...

thanks a million for looking into this :-)

Jim



On 13/11/12 22:35, Laurent PETIT wrote:

Could you create a small lein2 project on github with what you
previously pasted in this thread correctly spread over files, etc., so
that it's really quick to reproduce the error?

Thanks,

Laurent

Sent from a smartphone, please excuse the brevity/typos.

Le 13 nov. 2012 ą 22:52, Jim - FooBar(); jimpil1...@gmail.com a 
écrit

:


On 13/11/12 21:45, Dave Ray wrote:

Dump the JVM's threads [1] and see what it's stuck on?
What am I looking for? I don't see anything related with my 
project...IT
is pretty obvious from the output though that everything is 
waiting! No clue

what though...

Jim

- 



2012-11-13 21:47:16
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed 
mode):


Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on
condition [0x7f4258338000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d270 (a
java.util.concurrent.SynchronousQueue$TransferStack)
 at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) 


 at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) 


 at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359) 


 at
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41) 

 at 
clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)

 at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
 at clojure.lang.AFn.run(AFn.java:24)
 at java.lang.Thread.run(Thread.java:722)

NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000
nid=0x1fc5 in Object.wait() [0x7f4258439000]
java.lang.Thread.State: WAITING (on object monitor)
 at java.lang.Object.wait(Native Method)
 - waiting on 0xc286b100 (a
jline.internal.NonBlockingInputStream)
 at
jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278) 


 - locked 0xc286b100 (a
jline.internal.NonBlockingInputStream)
 at java.lang.Thread.run(Thread.java:722)

process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf 
waiting

on condition [0x7f4258461000]
java.lang.Thread.State: TIMED_WAITING (parking)
 at sun.misc.Unsafe.park(Native Method)
 - parking to wait for  0xc286d7e8 (a
java.util.concurrent.SynchronousQueue$TransferStack)
 at
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) 


 at
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460) 


 at
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359) 


 at
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
 at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 



code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Jim - FooBar();

Hi all,

I've had this unbelievable problem for some time now but I'm sick and 
tired of ignoring it! It is literally driving nuts...Due to the nature 
of the problem my terminal hangs and Eclipse crashes altogether 
(potentially losing work)!


So what is the problem...Well I really don't have a clue! it is pretty 
obvious that my code is waiting on something but it only happens when 
I've got a dependency on a namespace of mine which uses seesaw. It is 
basically my gui...the bad behaviour is exhibited every time I try to 
reload my namespace after having opened a JFrame regardless of having 
done anything on the frame! I mean the same happens if I open it and 
close it straight after!


anyway, I managed to mock the behaviour with a minimal example:
-

(ns Clondie24.games.dummy
  (:require [Clondie24.lib.gui :as gui]))

(def details {:name 'Dummy
  :players 2
  :arena-size [420 :by 505]
  :tile-size 133})

(defn -main
Starts a graphical (swing) Chess game.
[ args]
(gui/show-gui! details))


(ns Clondie24.lib.gui
(:require [Clondie24.lib.util :as ut]
  [Clondie24.lib.core :as core]
  [seesaw.core :as ssw]
  [seesaw.chooser :as choo])
(:import  [java.awt AlphaComposite Graphics Graphics2D Toolkit]
  [java.awt.event MouseEvent]
  [javax.swing SwingWorker UIManager]) )

(def curr-game (promise))
(def status-label (ssw/label :id :status :text Ready!))

(defn draw-tiles [d ^Graphics g]
  (let [w (ssw/width d)
h (ssw/height d)
tile-size (:tile-size @curr-game)
tiles (map vector (for [x (range 0 w tile-size)
y (range 0 h tile-size)] [x y])
  (cycle (:alternating-colours @curr-game)))]
(when (:alternating-colours @curr-game)
  (doseq [[[x y] c] tiles]
   (.setColor g c)
   (.fillRect g x y tile-size tile-size)) )
 (draw-grid d g)
 (draw-images g)
 (highlight-rects g)))

(def canvas The paintable canvas - our board
 (ssw/canvas
:paint draw-tiles
:id :canvas
:listen [:mouse-clicked (fn [e] (when-not (and (:block? @knobs)
 (realized? 
curr-game))

  (canva-react e)))]
))

(defn arena Constructs and returns the entire arena frame. []
 (ssw/frame
:title Clondie24 Arena
:size  (:arena-size @curr-game)
:resizable? false
:on-close :exit
:menubar  nil ;(make-menubar)
:content  (ssw/border-panel
   :border 10
   :hgap 10
   :vgap 10 ;;IGNORE ALL THIS FOLLOWING CODE TO SAVE TIME
   :north  (ssw/horizontal-panel :items
   [(ssw/button :text Undo  :listen [:action (fn 
[e] (when-not (:block? @knobs)

(do (refresh :highlighting? false
:hint nil)
(undo!) (ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Clear :listen [:action (fn 
[e] (when-not (:block? @knobs)

(do (refresh :highlighting? false
:hint nil)
(clear!) (ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Available Moves :listen 
[:action (fn [e] (when-not (:block? @knobs)
(do 
(refresh :highlighting? true

:hint nil)
(ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Hint :listen [:action (fn 
[e] (when-not (:block? @knobs)
 (do (knob! 
:highlighting? false)

(with-busy-cursor canvas
  (hint 
(:pref-depth @curr-game)) :hint]) [:fill-h 10]])

   :center canvas
   :south  status-label)))


(defn show-gui! Everything starts from here. [game-map]
  (deliver curr-game game-map) ;firstly make the gui aware of what game 
we want it to display

   (ssw/invoke-later
 (doto (arena) ssw/show!)))

---

any thoughts / feedback are greatly welcome. I cannot see why such a 
standard setup would hang after trying to reload the dummy namespace. 
everything reloads just fine as long as i don't show anything on 
screen...scary stuff!


thanks in advance...

Jim



--
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


Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Dave Ray
Just a wild guess, but if something's shown on the screen,
#'draw-tiles will probably get invoked to paint the canvas and it
might end up blocking on the #'curr-game promise.

Dave

On Tue, Nov 13, 2012 at 12:19 PM, Jim - FooBar(); jimpil1...@gmail.com wrote:
 Hi all,

 I've had this unbelievable problem for some time now but I'm sick and tired
 of ignoring it! It is literally driving nuts...Due to the nature of the
 problem my terminal hangs and Eclipse crashes altogether (potentially losing
 work)!

 So what is the problem...Well I really don't have a clue! it is pretty
 obvious that my code is waiting on something but it only happens when I've
 got a dependency on a namespace of mine which uses seesaw. It is basically
 my gui...the bad behaviour is exhibited every time I try to reload my
 namespace after having opened a JFrame regardless of having done anything on
 the frame! I mean the same happens if I open it and close it straight after!

 anyway, I managed to mock the behaviour with a minimal example:
 -

 (ns Clondie24.games.dummy
   (:require [Clondie24.lib.gui :as gui]))

 (def details {:name 'Dummy
   :players 2
   :arena-size [420 :by 505]
   :tile-size 133})

 (defn -main
 Starts a graphical (swing) Chess game.
 [ args]
 (gui/show-gui! details))


 (ns Clondie24.lib.gui
 (:require [Clondie24.lib.util :as ut]
   [Clondie24.lib.core :as core]
   [seesaw.core :as ssw]
   [seesaw.chooser :as choo])
 (:import  [java.awt AlphaComposite Graphics Graphics2D Toolkit]
   [java.awt.event MouseEvent]
   [javax.swing SwingWorker UIManager]) )

 (def curr-game (promise))
 (def status-label (ssw/label :id :status :text Ready!))

 (defn draw-tiles [d ^Graphics g]
   (let [w (ssw/width d)
 h (ssw/height d)
 tile-size (:tile-size @curr-game)
 tiles (map vector (for [x (range 0 w tile-size)
 y (range 0 h tile-size)] [x y])
   (cycle (:alternating-colours @curr-game)))]
 (when (:alternating-colours @curr-game)
   (doseq [[[x y] c] tiles]
(.setColor g c)
(.fillRect g x y tile-size tile-size)) )
  (draw-grid d g)
  (draw-images g)
  (highlight-rects g)))

 (def canvas The paintable canvas - our board
  (ssw/canvas
 :paint draw-tiles
 :id :canvas
 :listen [:mouse-clicked (fn [e] (when-not (and (:block? @knobs)
  (realized? curr-game))
   (canva-react e)))]
 ))

 (defn arena Constructs and returns the entire arena frame. []
  (ssw/frame
 :title Clondie24 Arena
 :size  (:arena-size @curr-game)
 :resizable? false
 :on-close :exit
 :menubar  nil ;(make-menubar)
 :content  (ssw/border-panel
:border 10
:hgap 10
:vgap 10 ;;IGNORE ALL THIS FOLLOWING CODE TO SAVE TIME
:north  (ssw/horizontal-panel :items
[(ssw/button :text Undo  :listen [:action (fn [e]
 (when-not (:block? @knobs)
 (do (refresh :highlighting? false
 :hint nil)
 (undo!) (ssw/repaint! canvas]) [:fill-h 10]
 (ssw/button :text Clear :listen [:action (fn [e]
 (when-not (:block? @knobs)
 (do (refresh :highlighting? false
 :hint nil)
 (clear!) (ssw/repaint! canvas]) [:fill-h 10]
 (ssw/button :text Available Moves :listen [:action
 (fn [e] (when-not (:block? @knobs)
 (do (refresh
 :highlighting? true
 :hint nil)
 (ssw/repaint! canvas]) [:fill-h 10]
 (ssw/button :text Hint :listen [:action (fn [e]
 (when-not (:block? @knobs)
  (do (knob!
 :highlighting? false)
 (with-busy-cursor canvas
   (hint (:pref-depth
 @curr-game)) :hint]) [:fill-h 10]])
:center canvas
:south  status-label)))


 (defn show-gui! Everything starts from here. [game-map]
   (deliver curr-game game-map) ;firstly make the gui aware of what game we
 want it to display
(ssw/invoke-later
  (doto (arena) ssw/show!)))

 ---

 any thoughts / feedback are greatly welcome. I cannot see why such a
 standard setup would hang after trying to reload the dummy namespace.
 everything reloads just fine as long as i don't show anything on
 screen...scary stuff!

 thanks in advance...

 Jim



 --
 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 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Laurent PETIT
Hello,

As of the freeze of Eclipse: you're probably using 0.10.1. A problem
of hangs in relation with the way Counterclockwise was talking to the
repl has been fixed in the beta. You could either switch right now to
the beta channel ( http://ccw.crand.net/updatesite-betas/ ) either
wait until Thursday, I'll deliver what is currently in beta into a new
stable release (0.10.2)

Sent from a smartphone, please excuse the brevity/typos.

Le 13 nov. 2012 à 21:19, Jim - FooBar(); jimpil1...@gmail.com a écrit :

 Hi all,

 I've had this unbelievable problem for some time now but I'm sick and tired 
 of ignoring it! It is literally driving nuts...Due to the nature of the 
 problem my terminal hangs and Eclipse crashes altogether (potentially losing 
 work)!

 So what is the problem...Well I really don't have a clue! it is pretty 
 obvious that my code is waiting on something but it only happens when I've 
 got a dependency on a namespace of mine which uses seesaw. It is basically my 
 gui...the bad behaviour is exhibited every time I try to reload my namespace 
 after having opened a JFrame regardless of having done anything on the frame! 
 I mean the same happens if I open it and close it straight after!

 anyway, I managed to mock the behaviour with a minimal example:
 -

 (ns Clondie24.games.dummy
  (:require [Clondie24.lib.gui :as gui]))

 (def details {:name 'Dummy
  :players 2
  :arena-size [420 :by 505]
  :tile-size 133})

 (defn -main
 Starts a graphical (swing) Chess game.
 [ args]
 (gui/show-gui! details))


 (ns Clondie24.lib.gui
(:require [Clondie24.lib.util :as ut]
  [Clondie24.lib.core :as core]
  [seesaw.core :as ssw]
  [seesaw.chooser :as choo])
(:import  [java.awt AlphaComposite Graphics Graphics2D Toolkit]
  [java.awt.event MouseEvent]
  [javax.swing SwingWorker UIManager]) )

 (def curr-game (promise))
 (def status-label (ssw/label :id :status :text Ready!))

 (defn draw-tiles [d ^Graphics g]
  (let [w (ssw/width d)
h (ssw/height d)
tile-size (:tile-size @curr-game)
tiles (map vector (for [x (range 0 w tile-size)
y (range 0 h tile-size)] [x y])
  (cycle (:alternating-colours @curr-game)))]
 (when (:alternating-colours @curr-game)
  (doseq [[[x y] c] tiles]
   (.setColor g c)
   (.fillRect g x y tile-size tile-size)) )
 (draw-grid d g)
 (draw-images g)
 (highlight-rects g)))

 (def canvas The paintable canvas - our board
 (ssw/canvas
:paint draw-tiles
:id :canvas
:listen [:mouse-clicked (fn [e] (when-not (and (:block? @knobs)
 (realized? curr-game))
  (canva-react e)))]
))

 (defn arena Constructs and returns the entire arena frame. []
 (ssw/frame
:title Clondie24 Arena
:size  (:arena-size @curr-game)
:resizable? false
:on-close :exit
:menubar  nil ;(make-menubar)
:content  (ssw/border-panel
   :border 10
   :hgap 10
   :vgap 10 ;;IGNORE ALL THIS FOLLOWING CODE TO SAVE TIME
   :north  (ssw/horizontal-panel :items
   [(ssw/button :text Undo  :listen [:action (fn [e] 
 (when-not (:block? @knobs)
 (do (refresh :highlighting? false
 :hint nil)
 (undo!) (ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Clear :listen [:action (fn [e] 
 (when-not (:block? @knobs)
 (do (refresh :highlighting? false
 :hint nil)
 (clear!) (ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Available Moves :listen [:action 
 (fn [e] (when-not (:block? @knobs)
(do (refresh 
 :highlighting? true
 :hint nil)
 (ssw/repaint! canvas]) [:fill-h 10]
(ssw/button :text Hint :listen [:action (fn [e] 
 (when-not (:block? @knobs)
 (do (knob! :highlighting? 
 false)
 (with-busy-cursor canvas
  (hint (:pref-depth 
 @curr-game)) :hint]) [:fill-h 10]])
   :center canvas
   :south  status-label)))


 (defn show-gui! Everything starts from here. [game-map]
  (deliver curr-game game-map) ;firstly make the gui aware of what game we 
 want it to display
   (ssw/invoke-later
 (doto (arena) ssw/show!)))

 ---

 any thoughts / feedback are greatly welcome. I cannot see why such a standard 
 setup would hang after trying to reload the dummy namespace. everything 
 reloads just fine as long as i don't show anything on screen...scary stuff!

 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Jim - FooBar();

On 13/11/12 20:36, Dave Ray wrote:

Just a wild guess, but if something's shown on the screen,
#'draw-tiles will probably get invoked to paint the canvas and it
might end up blocking on the #'curr-game promise.

thanks for your response Dave,

even though I'm not entirely sure what you mean, I can confirm that the 
promise is not to blame...I replaced it with an atom and the same thing 
happened...Delivering the promise is the very 1st thing happening so I 
can't see how it might be blocking...also, the canvas does not react 
unless the promise has been realized. After closing the gui I can't do 
anything on the dummy namespace...it hangs indefinately...


any other thoughts? I am quite desperate here...

Jim

ps: thanks Laurent, I'll check out the stable release on Thursday. The 
problem is that I'm not getting any exceptions so I'm not sure to much 
extent  the eclipse debugger can help me.


--
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


Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Dave Ray
Dump the JVM's threads [1] and see what it's stuck on?

Dave

[1] http://www.crazysquirrel.com/computing/java/basics/java-thread-dump.jspx

On Tue, Nov 13, 2012 at 1:42 PM, Jim - FooBar(); jimpil1...@gmail.com wrote:
 On 13/11/12 20:36, Dave Ray wrote:

 Just a wild guess, but if something's shown on the screen,
 #'draw-tiles will probably get invoked to paint the canvas and it
 might end up blocking on the #'curr-game promise.

 thanks for your response Dave,

 even though I'm not entirely sure what you mean, I can confirm that the
 promise is not to blame...I replaced it with an atom and the same thing
 happened...Delivering the promise is the very 1st thing happening so I can't
 see how it might be blocking...also, the canvas does not react unless the
 promise has been realized. After closing the gui I can't do anything on the
 dummy namespace...it hangs indefinately...

 any other thoughts? I am quite desperate here...

 Jim

 ps: thanks Laurent, I'll check out the stable release on Thursday. The
 problem is that I'm not getting any exceptions so I'm not sure to much
 extent  the eclipse debugger can help me.

 --
 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


Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Jim - FooBar();

On 13/11/12 21:45, Dave Ray wrote:

Dump the JVM's threads [1] and see what it's stuck on?


What am I looking for? I don't see anything related with my project...IT 
is pretty obvious from the output though that everything is waiting! No 
clue what though...


Jim
-

2012-11-13 21:47:16
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode):

Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on 
condition [0x7f4258338000]

   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d270 (a 
java.util.concurrent.SynchronousQueue$TransferStack)
at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at 
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)

at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:722)

NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000 
nid=0x1fc5 in Object.wait() [0x7f4258439000]

   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0xc286b100 (a 
jline.internal.NonBlockingInputStream)
at 
jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)

- locked 0xc286b100 (a jline.internal.NonBlockingInputStream)
at java.lang.Thread.run(Thread.java:722)

process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf 
waiting on condition [0x7f4258461000]

   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d7e8 (a 
java.util.concurrent.SynchronousQueue$TransferStack)
at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at 
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

clojure-agent-send-off-pool-3 prio=10 tid=0x7f4214005000 
nid=0x1fbd runnable [0x7f425856]

   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at 
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)

at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at clojure.tools.nrepl.server$accept_connection.invoke(server.clj:32)
at clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1822)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:116)
at clojure.lang.Agent$Action.run(Agent.java:165)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

clojure-agent-send-off-pool-2 prio=10 tid=0x7f4214003800 
nid=0x1fbb waiting on condition [0x7f4258663000]

   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286e000 (a 
java.util.concurrent.SynchronousQueue$TransferStack)
at 
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at 
java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)

at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:27)
at clojure.tools.nrepl.server$handle.invoke(server.clj:24)
at 
clojure.tools.nrepl.server$accept_connection$fn__1256.invoke(server.clj:35)

at 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Laurent PETIT
Could you create a small lein2 project on github with what you
previously pasted in this thread correctly spread over files, etc., so
that it's really quick to reproduce the error?

Thanks,

Laurent

Sent from a smartphone, please excuse the brevity/typos.

Le 13 nov. 2012 à 22:52, Jim - FooBar(); jimpil1...@gmail.com a écrit :

 On 13/11/12 21:45, Dave Ray wrote:
 Dump the JVM's threads [1] and see what it's stuck on?

 What am I looking for? I don't see anything related with my project...IT is 
 pretty obvious from the output though that everything is waiting! No clue 
 what though...

 Jim
 -

 2012-11-13 21:47:16
 Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode):

 Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on condition 
 [0x7f4258338000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d270 (a 
 java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
 clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)
at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:722)

 NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000 
 nid=0x1fc5 in Object.wait() [0x7f4258439000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0xc286b100 (a jline.internal.NonBlockingInputStream)
at 
 jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)
- locked 0xc286b100 (a jline.internal.NonBlockingInputStream)
at java.lang.Thread.run(Thread.java:722)

 process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf waiting on 
 condition [0x7f4258461000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d7e8 (a 
 java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

 clojure-agent-send-off-pool-3 prio=10 tid=0x7f4214005000 nid=0x1fbd 
 runnable [0x7f425856]
   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at 
 java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at clojure.tools.nrepl.server$accept_connection.invoke(server.clj:32)
at clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1822)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:116)
at clojure.lang.Agent$Action.run(Agent.java:165)
at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

 clojure-agent-send-off-pool-2 prio=10 tid=0x7f4214003800 nid=0x1fbb 
 waiting on condition [0x7f4258663000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286e000 (a 
 java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
 

Re: code waiting on something - cannot debug - driving me insane!!!

2012-11-13 Thread Jim - FooBar();
The original project is already on github...I just committed the dummy 
namespace as well so you can have a look...

so, do:

git clone https://github.com/jimpil/Clondie24.git
cd Clondie24
lein2 repl

(load-file Clondie24.games.dummy.clj)
(ns Clondie24.games.dummy)
(-main)

then close the frame without doing anything and try evaluating anything 
(e.g (:name details)).
it goes without saying that the same thing happens in all other proper 
games as well...


thanks a million for looking into this :-)

Jim


On 13/11/12 22:35, Laurent PETIT wrote:

Could you create a small lein2 project on github with what you
previously pasted in this thread correctly spread over files, etc., so
that it's really quick to reproduce the error?

Thanks,

Laurent

Sent from a smartphone, please excuse the brevity/typos.

Le 13 nov. 2012 ą 22:52, Jim - FooBar(); jimpil1...@gmail.com a écrit :


On 13/11/12 21:45, Dave Ray wrote:

Dump the JVM's threads [1] and see what it's stuck on?

What am I looking for? I don't see anything related with my project...IT is 
pretty obvious from the output though that everything is waiting! No clue what 
though...

Jim
-

2012-11-13 21:47:16
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode):

Thread-11 prio=10 tid=0x7f4268022800 nid=0x1fc8 waiting on condition 
[0x7f4258338000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d270 (a 
java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
clojure.tools.nrepl.transport$fn_transport$fn__1008.invoke(transport.clj:41)
at clojure.tools.nrepl.transport.FnTransport.recv(transport.clj:28)
at reply.eval_modes.nrepl$main$fn__1451.invoke(nrepl.clj:154)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:722)

NonBlockingInputStreamThread daemon prio=10 tid=0x7f42685d9000 nid=0x1fc5 
in Object.wait() [0x7f4258439000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on 0xc286b100 (a jline.internal.NonBlockingInputStream)
at 
jline.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)
- locked 0xc286b100 (a jline.internal.NonBlockingInputStream)
at java.lang.Thread.run(Thread.java:722)

process reaper daemon prio=10 tid=0x7f42685d5000 nid=0x1fbf waiting on 
condition [0x7f4258461000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  0xc286d7e8 (a 
java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at 
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
at 
java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

clojure-agent-send-off-pool-3 prio=10 tid=0x7f4214005000 nid=0x1fbd 
runnable [0x7f425856]
   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at clojure.tools.nrepl.server$accept_connection.invoke(server.clj:32)
at clojure.core$binding_conveyor_fn$fn__3989.invoke(core.clj:1822)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:116)
at clojure.lang.Agent$Action.run(Agent.java:165)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

clojure-agent-send-off-pool-2 prio=10 tid=0x7f4214003800 nid=0x1fbb 
waiting on condition [0x7f4258663000]
   java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to