Sorry to keep bumping my own post, but I'm becoming very convinced
that this is an issue with the 1.5 JVM on PPC OS X. I've been sending
very large datasets though on various workstations, and the program
behaves perfectly. At this point, I'm going to concentrate on getting
this project ready for an initial release. If there are any serious
bugs, I suppose that's what bug reports are for ;-).

On Jun 1, 10:09 pm, tmountain <tinymount...@gmail.com> wrote:
> Code pasted like crap for some reason. You can see it 
> here:http://pastebin.com/f736205f2
>
> On Jun 1, 10:05 pm, tmountain <tinymount...@gmail.com> wrote:
>
> > I took your advice and pulled my streams up front. This did seem to
> > offer a small performance benefit, but the issue persists. I've
> > greatly simplified the reader function to ensure that there's nothing
> > stupid going on there causing the erratic behavior.
>
> > (defn connection-read [#^DataInputStream
> > conn]
> >   "reads data up to the amount specified by the packet
> > header"
> >   (let [bytes (make-array (. Byte TYPE)
> > 4)]
> >     (. conn (read bytes 0
> > 4))
> >     ; make an array big enough for header +
> > data
> >     (let [data (make-array (. Byte
> > TYPE)
> >                            (+ 4 (packet-length?
> > bytes)))]
> >       (System/arraycopy bytes 0 data 0
> > 4)
> >       (. conn readFully data 4 (- (alength data)
> > 4))
> >       ;(Thread/sleep 0) ; must uncomment for large
> > datasets
> >       data)))
>
> > I did some testing on my work PC today, and could not reproduce the
> > problem. I'm doing most of my dev on an old Powerbook G4 PPC running
> > OS X 10.5. I'm wondering if the issue could be related to the Java VM
> > on that machine, which is 1.5. There's no upgrade path to go beyond
> > 1.5 on PPC, so unfortunately there's no way to tell.
>
> > On Jun 1, 10:20 am, MikeM <michael.messini...@invista.com> wrote:
>
> > > I don't know if this is part of the problem, but you appear to be
> > > calling getInputStream repeatedly on the socket. I think more
> > > typically the socket connnection is established, input and output
> > > streams are obtained one time only, then the streams are used as
> > > needed for the duration of the connection.
--~--~---------~--~----~------------~-------~--~----~
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