Details
-
Type:
Defect
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: Release 1.3, Release 1.4
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Environment:Reproduced on Ubuntu using Sun Java 1.6, OpenJDK 1.6, and Sun Java 1.7
Description
Create the following four-line file, shell_example.clj:
;; simple example of call to sh that causes jvm to hang after print
(require '[clojure.java.shell :as shell])
(shell/sh "ls")
(println "jvm should exit after this, but it doesn't")
Run:
java -jar clojure-1.3.0.jar shell_example.clj
After the message is printed, the jvm doesn't quit. It just sits there. I have to hit Ctrl-C to force the jvm to quit.
This happens on 1.3 and the most recent code in github as of 3/26/2012. I imagine the jvm is waiting for a thread that hasn't terminated, but the code in the sh function doesn't look like it's doing anything obviously wrong. I'm too much of a newcomer to Clojure to dig any deeper.
My workaround right now is to do (System/exit 0) to force the jvm to quit.
Thank you for your work on Clojure, it's simply an amazing language.