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.comwrote:
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