[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Ccrtp-devel] 2 problem in rtp.h
From: |
David Sugar |
Subject: |
Re: [Ccrtp-devel] 2 problem in rtp.h |
Date: |
Thu, 25 Mar 2004 22:21:20 -0500 |
User-agent: |
KMail/1.5.3 |
It should be out this weekend or early next week. Mostly I had been waiting
for Federico to have a chance to look at and test the use of Common C++
"String" but this is not at all nessisary for 1.1.1.
On Friday 26 March 2004 04:08 am, Guillaume FRAYSSE wrote:
> Hello again,
>
> You haven't answered those questions yet.
> Could you give us a date for the next release ?
>
> Thank you,
> Guillaume Fraysse
>
> Guillaume FRAYSSE <address@hidden> writes:
> > Hello everyone,
> >
> > Is it possible to have a new release soon ? We really need a relase
> > with our bug fixes as soon as possible. It's really inconvenient now
> > especially with the 1.1.0 being on sourceforge.
> >
> > It would be much easier for us.
> >
> > Regards,
> > Guillaume Fraysse
> >
> > Federico Montesino Pouzols <address@hidden> writes:
> >> Yes, both bugs were in 1.1.0, and both fixes from Guillaume
> >> are now in CVS. Thanks for the report!
> >>
> >> Also yes, it would make sense to replace string with String, I
> >> will take care of that a bit later...
> >>
> >> On Thu, Mar 11, 2004 at 09:13:57PM -0500, David Sugar wrote:
> >>> Hmm...I think Federico will look at this more closely. However, the
> >>> current release of ccrtp is 1.1.0, not 1.0.2. It looks like the
> >>> username question is valid for 1.1.0 as well, however, and so I assume
> >>> the other issue is also.
> >>>
> >>> I was thinking it would soon be a good time to do a new release since
> >>> we were getting ready to do a 1.1.1 common c++ release shortly.
> >>>
> >>> On a related note, should we continue using std::string in ccrtp or
> >>> should we now use the new Common C++ "String" class?
> >>>
> >>> On Friday 12 March 2004 07:20 am, Guillaume Glodas wrote:
> >>> > Hi,
> >>> >
> >>> >
> >>> > we've found a string initialisation problem in the source file
> >>> > ccrtp-1.0.2/src/source.cpp
> >>> >
> >>> > 81,83c81,90
> >>> > if ( !strcmp(user,"") )
> >>> > user = Process::getEnv("USER");
> >>> > username = user;
> >>> >
> >>> > when user is NULL, username which is a string, is wrongly
> >>> > initialised.
> >>> >
> >>> > this piece of code seems to fix this bug :
> >>> > if (user) {
> >>> > if ( !strcmp(user,"") )
> >>> > user = Process::getEnv("USER");
> >>> > if (user)
> >>> > username = user;
> >>> > else
> >>> > username="";
> >>> > }
> >>> > else
> >>> > username ="";
> >>> > .
> >>> >
> >>> > We've found a dead lock problem in the header file
> >>> > ccrtp-1.0.2_local/src/ccrtp/rtp.h
> >>> >
> >>> > run()
> >>> > {
> >>> > microtimeout_t timeout = 0;
> >>> > while ( ServiceQueue::isActive() ) {
> >>> > if ( !timeout ){
> >>> > timeout = getSchedulingTimeout();
> >>> > }
> >>> > setCancel(cancelDeferred);
> >>> > controlReceptionService();
> >>> > controlTransmissionService();
> >>> > setCancel(cancelImmediate);
> >>> > microtimeout_t maxWait =
> >>> >
> >>> > timeval2microtimeout(getRTCPCheckInterval());
> >>> > // make sure the scheduling timeout is
> >>> > // <= the check interval for RTCP
> >>> > // packets
> >>> > timeout = (timeout > maxWait)? maxWait :
> >>> > timeout;
> >>> > if ( !timeout ) {
> >>> > setCancel(cancelDeferred);
> >>> > size_t r = dispatchDataPacket();
> >>> > setCancel(cancelImmediate);
> >>> > if ( r < 0 )
> >>> > timeout = timeout;
> >>> > timerTick();
> >>> > } else {
> >>> > if ( isPendingData(timeout/1000) ) {
> >>> > setCancel(cancelDeferred);
> >>> > size_t r =
> >>> > takeInDataPacket(); setCancel(cancelImmediate); if ( r < 0 )
> >>> > return;
> >>> > }
> >>> > timeout = 0;
> >>> > }
> >>> > }
> >>> > dispatchBYE("GNU ccRTP stack finishing.");
> >>> > sleep(~0);
> >>> > }
> >>> >
> >>> > if timeout < 100 timeout/1000 = 0
> >>> > isPendingData(timeout/1000) == isPendingData(0)
> >>> > if there no incoming data, isPendingData waits undefinitely.
> >>> >
> >>> > This piece of code seems to solve the problem :
> >>> > run()
> >>> > {
> >>> > microtimeout_t timeout = 0;
> >>> > while ( ServiceQueue::isActive() ) {
> >>> > if ( !(timeout/1000) ){
> >>> > timeout = getSchedulingTimeout();
> >>> > }
> >>> > setCancel(cancelDeferred);
> >>> > controlReceptionService();
> >>> > controlTransmissionService();
> >>> > setCancel(cancelImmediate);
> >>> > microtimeout_t maxWait =
> >>> >
> >>> > timeval2microtimeout(getRTCPCheckInterval());
> >>> > // make sure the scheduling timeout is
> >>> > // <= the check interval for RTCP
> >>> > // packets
> >>> > timeout = (timeout > maxWait)? maxWait :
> >>> > timeout;
> >>> > if ( !(timeout/1000) ) {
> >>> > setCancel(cancelDeferred);
> >>> > size_t r = dispatchDataPacket();
> >>> > setCancel(cancelImmediate);
> >>> > if ( r < 0 )
> >>> > timeout = timeout;
> >>> > timerTick();
> >>> > } else {
> >>> > if ( isPendingData(timeout/1000) ) {
> >>> > setCancel(cancelDeferred);
> >>> > size_t r =
> >>> > takeInDataPacket(); setCancel(cancelImmediate); if ( r < 0 )
> >>> > return;
> >>> > }
> >>> > timeout = 0;
> >>> > }
> >>> > }
> >>> > dispatchBYE("GNU ccRTP stack finishing.");
> >>> > sleep(~0);
> >>> > }
> >>> >
> >>> > regards,
> >>> >
> >>> > Guillaume Glodas
> >>> >
> >>> >
> >>> >
> >>> > _______________________________________________
> >>> > Ccrtp-devel mailing list
> >>> > address@hidden
> >>> > http://mail.gnu.org/mailman/listinfo/ccrtp-devel
> >>>
> >>> _______________________________________________
> >>> Ccrtp-devel mailing list
> >>> address@hidden
> >>> http://mail.gnu.org/mailman/listinfo/ccrtp-devel
> >>
> >> _______________________________________________
> >> Ccrtp-devel mailing list
> >> address@hidden
> >> http://mail.gnu.org/mailman/listinfo/ccrtp-devel