On Apr 23, 4:41 pm, Ken Wesson <kwess...@gmail.com> wrote:
> On Sat, Apr 23, 2011 at 5:30 PM, Michael Wood <esiot...@gmail.com> wrote:
> > On 23 April 2011 17:31, Ken Wesson <kwess...@gmail.com> wrote:
> >> On Sat, Apr 23, 2011 at 5:12 AM, Zlatko Josic <zlatko.jo...@gmail.com> 
> >> wrote:
> >>> Hi,
> >>> I would like to start two progams from Eclipse. One is a server and the
> >>> other one is a client.
> >>> I use Load Clojure file in REPL from Eclipse menu. When I start the server
> >>> it never ends because
> >>> the server has endless loop where it waits for clients. Now when I start 
> >>> the
> >>> client programs it never
> >>> evaluates because REPL is busy with server program. I suppose it works as 
> >>> I
> >>> described. Maybe I am
> >>> wrong I am not sure.
> >>> Any ideas to overcame this situation are welcome.
>
> >> Have the server spawning function (or both, if the client is GUI) just
> >> start a separate thread and immediately return.
>
> >> (In fact, servers normally are multithreaded anyway, aren't they, to
> >> be able to handle multiple concurrent incoming requests.)
>
> > Well, Java servers probably are yes, but traditional Unix servers
> > would normally fork a new process for each incoming connection.
>
> Poor man's threads. Although the insulation of each one against
> crashes in the others might be useful when you're coding in a language
> with memory management tools as primitive as C's. ;)
>
> > There are various ways of doing it.  A separate process per client
> > connection; a separate thread per client connection; a single
> > process/thread handling multiple clients with select()/poll()/etc.
>
> For the first one, the JVM startup time is prohibitive; for the third
> you need nonblocking socket I/O, which might be in Java 7 or something
> but isn't available to us JVM-6 users.

http://download.oracle.com/javase/1.5.0/docs/api/java/nio/channels/package-summary.html#multiplex

Non-blocking socket IO has been around since 1.5, maybe even 1.4. It
only gets used for very heavy stuff because the API is unwieldy and
threads are simpler, but it's absolutely there.

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