I tried this and in the repl the propmt appears instantaneous again so this
seems to work fine here.



On Sat, Nov 10, 2012 at 6:51 AM, Michael Gardner <gardne...@gmail.com>wrote:

> I can't duplicate your results on my Debian wheezy box (Clojure 1.4,
> openjdk 1.6.0_24, xdg-open 1.1.0 rc1); the call to (sh "xdg-open" …)
> returns immediately. The only possibilities I can think of are that your
> version of xdg-open blocks when run from a non-interactive shell, or that
> your version of Java somehow handles subprocesses differently.
>
> The first possibility should be easy to test. And you should be able to
> test the second by writing your own shell script that forks and then exits
> (at least, I assume that's what xdg-open is doing).
>
> On Nov 9, 2012, at 19:26 , Andy Fingerhut <andy.finger...@gmail.com>
> wrote:
>
> > This issue may be specific to Linux, or even to a particular version of
> Linux that I am using (Ubuntu 11.10 32-bit desktop), although I doubt it
> is.  If others try this out, I'd be curious to know what your results are,
> especially if you know why it is happening, and how it can be fixed.
> >
> > First, some behavior from a bash window on Ubuntu 11.10:
> >
> > % echo hi
> > hi
> > % xdg-open http://www.google.com
> > %
> >
> > After pressing return for the xdg-open command above, my browser opens a
> tab to Google's home page.  Back in the shell window, the next prompt
> appears immediately, even though the browser is still running and open to
> that page.  That is what I expect to happen.
> >
> > However, if I do the following commands inside of a Clojure REPL (tested
> Clojure 1.4 and 1.5-beta1 so far):
> >
> > % rlwrap java -cp ~/lein/clojure-1.4.0/lib/clojure-1.4.0.jar clojure.main
> > Clojure 1.4.0
> > user=> (require '[clojure.java.shell :as sh])
> > nil
> > user=> (sh/sh "echo" "hi")
> > {:exit 0, :out "hi\n", :err ""}
> > user=> (sh/sh "xdg-open" "http://www.google.com";)
> >
> > The invocation of echo returns immediately, printing the result and the
> next REPL prompt.  But when I invoke xdg-open, while the browser window
> appears and goes to the Google home page, back in the bash window I see no
> return value and no new REPL prompt.
> >
> > If I quit the browser, then back in the bash window I finally see the
> return value and a REPL prompt, as shown below:
> >
> > {:exit 0, :out "", :err ""}
> > user=>
> >
> >
> > What I'm wishing would happen is for the return value and REPL prompt to
> appear very soon after pressing return when invoking xdg-open with
> clojure.java.shell/sh.
> >
> > I added some debug print messages to a local copy of
> clojure.java.shell/sh, and it is stopping when waiting for the evaluation
> of either @out or @err in the final line of the function.
> >
> > If I do the same commands above on Mac OS X, with "open" instead of
> "xdg-open", it all works as I expect.
> >
> > Any clues?
> >
> > Thanks,
> > Andy
> >
> > --
> > 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
>

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