Browse Source

modules/tm: restore code to set blind uac branch last_reply > 200

jaybeepee 10 years ago
parent
commit
0ee3dc5e3e
1 changed files with 9 additions and 4 deletions
  1. 9 4
      modules/tm/t_suspend.c

+ 9 - 4
modules/tm/t_suspend.c

@@ -215,10 +215,15 @@ int t_continue(unsigned int hash_index, unsigned int label,
 				return 1;
 				return 1;
 			}
 			}
 
 
-			/*we really don't need this next line anymore otherwise we will 
-			never be able to forward replies after a (t_relay) on this branch.
-			We want to try and treat this branch as 'normal' (as if it were a normal req, not async)' */
-			//t->uac[branch].last_received=500;
+			/* Set last_received to something >= 200,
++                       * the actual value does not matter, the branch
++                       * will never be picked up for response forwarding.
++                       * If last_received is lower than 200,
++                       * then the branch may tried to be cancelled later,
++                       * for example when t_reply() is called from
++                       * a failure route => deadlock, because both
++                       * of them need the reply lock to be held. */
+			t->uac[branch].last_received=500;
 			uac = &t->uac[branch];
 			uac = &t->uac[branch];
 		}
 		}
 		/* else
 		/* else