In Racket, does a given process have to be in a thread in order to give up time 
to other threads?  In other words, putting code in a thread does not guarantee 
it will keep running if execution can move into other code that is not threaded?

Details:

I am working on documenting and writing examples for a NAT-Traversal package 
which is to be contributed as a Racket package.  In order to keep a P2P 
connection alive, the NAT-Traversal (specifically STUN) process needs to keep 
sending pings back and forth between the peers.  Otherwise, the firewalls 
involved will close the ports being used for the connection.  To prevent this 
from happening, the NAT-Traversal code uses a lot of threading.  However, I am 
still seeing connections drop.  My example GUI chat client has a file transfer 
utility included but, if you take too much time in the open/save dialog 
selecting the file to send, it drops the connection and the file transfer 
fails.  Do I need to put my GUI in a thread?  Is that the issue?  I'm asking 
here on the list, rather than just trying it, mainly because I want to be sure 
that I explain the situation correctly in my documentation.

James

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/01C7C30C-C75A-4498-A8FB-A5F7B15181E8%40biomantica.com.

Reply via email to