Hi Bruce,
I'm working on a NetTalk-dependant application that is rather time-sensitive. Happens to use the FIX protocol to go about it's business (via NetTalk and the NetSimple class), placing orders on trading platforms ("buy x USD", "now's a good time to buy y CHF"). Very, very occasionally things go pear-shaped and our logging shows that unexpected seconds have past since we got a look (NetSimple.Process) at incoming packets from the platforms.
I'm not suggesting any problem with NetTalk, it smells like the relevant window "our side" is locking-up, not responding to events sent from NetTalk ("come get your packet") and we see it "late". But we are finding it difficult to diagnose what's happening during these very rare events. NetTalk's outputdebugstring logging isn't relevant here because we can't reproduce the problem, we need extra information to stuff into our disk logs on the machines that are running the application for real. That would help us zero-in, eliminate some suspicions, etc.
Short story is I'm wondering about two additions to your underlying "Packet" structure (the thing I look at in NetSimple.Process):-
#1. Haven't read too much about it, but think TCP can include an optional "sender timestamp". You can only know more about it than me, but if it's available then would it make sense to pass it "up" from NetTalk?
#2. Less vague, this is about inter-thread communication. In some way, maybe simple as today() and clock() tell the destination thread when NetTalk saw the thing (packet). Right now, it would be invaluable in trying to identify what's going on. We could stuff it in our disk log and see what it proves / disproves.
Not sure that's making a right lot of sense but I tried
Thanks,
Simon