@vingarzan commented on this pull request.


> @@ -367,9 +366,7 @@ int sm_process(
                                        p->state = R_Open;
                                        break;
                                case R_Rcv_Message:
-                                       // delayed processing until out of the 
critical zone
-                                       //Rcv_Process(p,msg);
-                                       msg_received = 1;
+                                       Rcv_Process(p, msg);

Calling the handlers with the lock is maybe a bad idea. Sure, there is a 
"task-queue" in-between this process and the one actually doing the handling 
and potentially sending a message out to the same peer, but you are changing 
the "contract" which other functions relied on, that the peer wasn't locked.

I left a bigger description though why having a pointer to the peer in 
`Rcv_Process()` is also a bad in the absence of a locked peer p. Hence we 
probably need to change the APIs, not the locking strategy here.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4191#pullrequestreview-2727969134
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/pull/4191/review/2727969...@github.com>
_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to