<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.5726" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>H<FONT face="Times New Roman" size=3>i 
</FONT>Ross.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; In the past you sayd (let me not 
search that mail!) that by now there is not a way to release live clientsessions 
when the RTSPServer is being deleted.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; I solved this issue with some 
code and I'd like to know your opinion about my solution.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; I 
defined&nbsp;fRTSPClientSessions in RTSPServer the same way it has 
fServerMediaSessions.</FONT></DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; So in the RTSPServer constructor 
we find:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>
<DIV>[code]</DIV>&nbsp;&nbsp;&nbsp; 
fServerMediaSessions(HashTable::create(STRING_HASH_KEYS)), <BR>#if 
(USE_CLIENT_SESSION_MANAGEMENT)<BR>&nbsp;&nbsp;&nbsp; 
fRTSPClientSessions(HashTable::create(STRING_HASH_KEYS)),<BR>#endif // 
USE_CLIENT_SESSION_MANAGEMENT<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>
<DIV>[/code]</DIV>
<DIV>&nbsp;</DIV></FONT></DIV>
<DIV><FONT face=Arial size=2>and in the RTSPServer destructor we 
find</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>[code]</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; 
::closeSocket(fServerSocket);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#if (USE_CLIENT_SESSION_MANAGEMENT)<BR>&nbsp; // 
rimozione di eventuali client ancora presenti // deletion of live clients, if 
any<BR>&nbsp; while (1) {<BR>&nbsp;&nbsp;&nbsp; RTSPClientSession* 
rtspClientSession<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 
(RTSPClientSession*)fRTSPClientSessions-&gt;RemoveNext();<BR>&nbsp;&nbsp;&nbsp; 
if (rtspClientSession == NULL) break;<BR>&nbsp;&nbsp;&nbsp; try { delete 
rtspClientSession ; }catch(...)<BR>&nbsp;&nbsp;&nbsp; { 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int a = 10 ; // for debug 
purpose<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; }<BR>#endif // 
USE_CLIENT_SESSION_MANAGEMENT</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp; // Remove all server media sessions (they'll 
get deleted when they're finished):<BR>&nbsp; while (1) {<BR>&nbsp;&nbsp;&nbsp; 
ServerMediaSession* serverMediaSession<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 
(ServerMediaSession*)fServerMediaSessions-&gt;RemoveNext();<BR>&nbsp;&nbsp;&nbsp; 
if (serverMediaSession == NULL) break;<BR>&nbsp;&nbsp;&nbsp; 
removeServerMediaSession(serverMediaSession);<BR>&nbsp; }</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp; // Finally, delete the session table 
itself:<BR>&nbsp; delete fServerMediaSessions;<BR>#if 
(USE_CLIENT_SESSION_MANAGEMENT)<BR>&nbsp; delete fRTSPClientSessions ;<BR>
<DIV>#endif // USE_CLIENT_SESSION_MANAGEMENT</DIV>
<DIV>[/code]</DIV>
<DIV>&nbsp;</DIV></DIV></FONT>
<DIV><FONT face=Arial size=2>In RTSPServer::RTSPClientSession constructor we 
find</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>
<DIV>[code]</DIV></FONT><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; 
fTCPStreamIdCount(0), fNumStreamStates(0), fStreamStates(NULL) {<BR>#if 
(USE_CLIENT_SESSION_MANAGEMENT)<BR>&nbsp; char strKey[50] ;<BR>&nbsp; unsigned 
__int64 ullAddress = (unsigned __int64)this ;<BR>&nbsp; sprintf( strKey, 
"%I64u", ullAddress ) ;<BR>&nbsp; // add without check for previous existing 
key<BR>&nbsp; fOurServer.fRTSPClientSessions-&gt;Add( strKey, this ) ;<BR>#endif 
// USE_CLIENT_SESSION_MANAGEMENT<BR>&nbsp; // Arrange to handle incoming 
requests:<BR></FONT><FONT face=Arial size=2><FONT face=Arial 
size=2>[/code]</DIV>
<DIV>&nbsp;</DIV>
<DIV>and in RTSPServer::RTSPClientSession destructor we find</DIV>
<DIV>&nbsp;</DIV>
<DIV>
<DIV>[code]</DIV>&nbsp; reclaimStreamStates();</DIV>
<DIV>&nbsp;</DIV>
<DIV>#if (USE_CLIENT_SESSION_MANAGEMENT)<BR>&nbsp; char strKey[50] ;<BR>&nbsp; 
unsigned __int64 ullAddress = (unsigned __int64)this ;<BR>&nbsp; sprintf( 
strKey, "%I64u", ullAddress ) ;<BR>&nbsp; 
fOurServer.fRTSPClientSessions-&gt;Remove( strKey ) ;<BR>#endif // 
USE_CLIENT_SESSION_MANAGEMENT</DIV>
<DIV>[/code]</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Ross, is there any pitfall in this clientsession 
management?</DIV>
<DIV>&nbsp;</DIV>
<DIV>Thank you very much,</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp; Renato</DIV>
<DIV>&nbsp;</DIV></FONT></FONT>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=ljsthestar@gmail.com href="mailto:ljsthestar@gmail.com">sri kanth</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=live-devel@ns.live555.com 
  href="mailto:live-devel@ns.live555.com">live-devel@ns.live555.com</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, January 06, 2009 5:29 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [Norton AntiSpam] [Live-devel] 
  Memory leaks</DIV>
  <DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT 
  face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial 
  size=2></FONT><BR></DIV>
  <P>Hi Ross,&nbsp;<BR></P>
  <P>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; I am sending the file 
  which describes regarding the memory leak in the code.</P>
  <P></P>
  <P>Thanks,</P>
  <P>Viswajeet</P>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>live-devel mailing 
  list<BR><A 
  href="mailto:live-devel@lists.live555.com">live-devel@lists.live555.com</A><BR><A 
  href="http://lists.live555.com/mailman/listinfo/live-devel">http://lists.live555.com/mailman/listinfo/live-devel</A><BR></BLOCKQUOTE></BODY></HTML>