]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
avoiding racing cpu (part 2)
authorAnthony Minessale <anthony.minessale@gmail.com>
Sat, 23 Jun 2007 03:26:12 +0000 (03:26 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Sat, 23 Jun 2007 03:26:12 +0000 (03:26 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5446 d0543943-73ff-0310-b7d9-9358b9ac24b2

scripts/socket/sock.pl
src/switch_rtp.c

index 946adab02fc8525b4e49377628bb77934751e914..3fe8c02b11bfe57d45862057393b77fc944e7eb5 100755 (executable)
@@ -21,12 +21,12 @@ print "Call: $data->{'caller-channel-name'} $data->{'unique-id'}\n";
 
 $o = $fs->call_command("answer");
 #to turn on events when in async mode
-#$o = $fs->raw_command("myevents");
+$o = $fs->raw_command("myevents");
 $o = $fs->call_command("playback", "/ram/swimp.raw");
 $o = $fs->call_command("hangup");
 
 #comment exit in async mode
-exit;
+#exit;
 
 while(my $r = $fs->readhash(undef)) {
   if ($r->{socketerror}) {
index 301248fc42f78cc93d535062a853cb3af83c754e..ac1f1e3e7e103c400649c369ee02434e6e42139b 100644 (file)
@@ -964,12 +964,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
 
                if (status == SWITCH_STATUS_BREAK || bytes == 0) {
                        if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_DATAWAIT)) {
-                               if (rtp_session->ms_per_packet) {
-                                       switch_yield((rtp_session->ms_per_packet / 1000) * 750);
-                               } else {
-                                       switch_yield(1000);
-                               }
-                               continue;
+                               goto do_continue;
                        }
                        return 0;
                }
@@ -1005,12 +1000,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
 
 
                if (bytes && rtp_session->cng_pt && rtp_session->recv_msg.header.pt == rtp_session->cng_pt) {
-                       if (rtp_session->ms_per_packet) {
-                               switch_yield((rtp_session->ms_per_packet / 1000) * 750);
-                       } else {
-                               switch_yield(1000);
-                       }
-                       continue;
+                       goto do_continue;
                }
                
 
@@ -1059,11 +1049,19 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
                                }
                        }
                        
-                       continue;
+                       goto do_continue;
                }
        
 
                break;
+
+       do_continue:
+
+               if (rtp_session->ms_per_packet) {
+                       switch_yield((rtp_session->ms_per_packet / 1000) * 750);
+               } else {
+                       switch_yield(1000);
+               }
        }
 
        *payload_type = (switch_payload_t) rtp_session->recv_msg.header.pt;