< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate-users] Self-pipe for SipStack select call, for DUM/TU messages


It’s already there as well.  The calls to checkAsyncProcessHandler() in SipStack.cxx cause a select interrupt to happen when the TU queus an item to the SipStack fifo.   You must pass the SelectInterruptor into the stack as an AsyncProcessHandler when you create it.  Note:  InterruptableStackThread is used in the recon project.  Documentation on the wiki would be a good to add.  : )

 

Scott

 

From: resiprocate-users-bounces@xxxxxxxxxxxxxxx [mailto:resiprocate-users-bounces@xxxxxxxxxxxxxxx] On Behalf Of Byron Campen
Sent: May 6, 2009 5:14 PM
To: Scott Godin
Cc: resiprocate-users@xxxxxxxxxxxxxxx; Vasanthi Ramasamy
Subject: Re: [reSIProcate-users] Self-pipe for SipStack select call, for DUM/TU messages

 

            Huh, guess I never looked at that code. So, maybe what we should think about doing is putting the necessary wiring in place to cause an interrupt to happen if an InterruptableStackThread is being used.

 

Best regards,

Byron Campen



This is already implemented in resiprocate. : )  See the SelectInterruptor and InterruptableStackThread classes.

 

Scott

On Wed, May 6, 2009 at 4:43 PM, Vasanthi Ramasamy <Vasanthi.Ramasamy@xxxxxxxxxxxxxxxx> wrote:

“A while back, I noticed a slight problem in the way the stack's process loop is constructed. The issue is that we can get in a situation where we are blocking on a select call (in the transport code) when there is work to be done in the transaction layer. Basically, let's say we get down into the select call; we're waiting for an fd to become ready. Then, the TU sends a request down to the stack. This does not interrupt the select call; we sit there waiting for an fd to become ready for 25ms, time out, and then notice the new work that the TU kicked down to us. We could solve this by using the "self-pipe" trick; where we have an anonymous pipe that we write a single byte to whenever stuff gets put in the state machine fifo, and we select on this pipe's fd along with the transport fds.”

 

  1. Is this getting implemented in Resiprocate ?
  2. If so, when ?  a ballpark timeframe would be great

 

Thanks,

Vasanthi

 

 


_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/

 

_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/