Socket recv behaviour in real-time context
site_archiver@lists.apple.com Delivered-To: Darwin-dev@lists.apple.com Hi, Thanks. Stephane Letz We are using UDP sockets to transmit audio in real-time between 2 machines. Basically the "master" machine is synchronized on the audio interrupt and send/recv audio packets on the "slave" machine. The "slave" machine is synchronized on incoming packets (that is waiting for an incoming packet on the socket to start it's audio cycle). The "slave" machine reception thread is set-up in real-time mode (using thread_policy_set /THREAD_TIME_CONSTRAINT_POLICY kind of API). It works quite reliably until we start to load the slave machine (like starting a big compilation). In this case the RT slave thread does not "wake up" the the right time, and we have quite big latencies (up to 50 millisecond latency measured on a MacPro Intel 4 cores 10.5.6 when the audio cycle is supposed to be 5 millisecond). More precisely it seems the socket recv operation blocks a lot of time. We configure the socket with SO_SNDBUF/SO_RCVBUF and possibly SO_RCVTIMEO kind of options. The same code works without problem on Linux. Are they special socket options to add in this case on OSX? is this an known problem for sockets on OSX? _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com
participants (1)
-
Stéphane Letz