>>>Hmm, in the limited work I've done with comms ISTR it's common practice to use buffering, where you let X bytes or kilobytes accumulate, then process. Requiring the listener to handle incoming bytes individually in real-time can expose you to (as you point out) GC, or OS or even (in your case) VM context switching.
>
>Because VFP doesn't handle chr(0) very well it needs to be byte by byte.
If you keep getting intermittent failures you might have to work around that.
>>>There is also a 16MB size limit for a memvar (and presumably object property). Do you get any messages approaching that size?
>
>Yep- but it's also documented that variables can get up to >600Mb if you're just adding to the same variable, but you can't assign it to a new variable. Still another good reason to refactor.
I just did a quick test in the Command Window:
lcBig = SPACE( 16000000 )
lcBig = lcBig + SPACE( 16000000 )
By my count I grew it to 31 * 16000000. Trying to add another 16000000 spaces made VFP crash with a C5 (VFP9 SP2 7423).
Regards. Al
"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov
Neither a despot, nor a doormat, be
Every app wants to be a database app when it grows up