Re: [GnomeMeeting-devel-list] GnomeMeeting on 2.6, not working yet



I did more testing, and under some circumstances (video transmission, no
fast start, tunneling), GnomeMeeting takes extremely long to connect.

Unfortunately, it seems it is not the right fix yet :(

Le dim 01/02/2004 à 01:33, Christian Meder a écrit :
> On Sat, 2004-01-31 at 16:00, Damien Sandras wrote:
> > Hi all,
> > 
> > I can confirm it fixes the problem for me too!
> > 
> > Nice job!
> > 
> > I think Craig can commit the fix. Thanks very much!
> > 
> 
> Hi,
> 
> I think we can scrap the last patch as it screws up gnomemeeting on
> 2.4.x.
> 
> I nailed it down to the following patch against 20040131-CVS pwlib
> version which works for me on 2.4.23 and 2.6.1.
> 
> I don't know why the ifdef Linux sched_yield was there in the first
> place.
> 
> I'm very interested in other people's experiences with this patch.
> Somebody still running 2.2 or 2.0 ?
> 
> 
> 
> 			Christian  
> 
> BTW nanosleep is a big difference between 2.4 and 2.6 because 2.6 is
> running with HZ=1000 while 2.4 is HZ=100.
> 
> --- pwlib-cvs-20040131.CVS/src/ptlib/unix/tlibthrd.cxx-orig	2004-02-01 01:00:32.000000000 +0100
> +++ pwlib-cvs-20040131.CVS/src/ptlib/unix/tlibthrd.cxx	2004-02-01 01:01:08.000000000 +0100
> @@ -1053,25 +1053,21 @@
>      pthread_testcancel();
>  #endif
>  
>      lastTime = PTime();
>    } while (lastTime < targetTime);
>  }
>  #endif
>  
>  void PThread::Yield()
>  {
> -  //sched_yield();
> -  // re-add this if 2.4 becomes unusable..
> -  // The following patch is improving 2.6 performance and it hopefully doesn't screw 2.4 ;)
> -  struct timespec timer = { 0, 1 };
> -  nanosleep (&timer, NULL);
> +  sched_yield();
>  }
>  
> 
>  PThread * PThread::Current()
>  {
>    PProcess & process = PProcess::Current();
>    process.threadMutex.Wait();
>    PThread * thread = process.activeThreads.GetAt((unsigned)pthread_self());
>    process.threadMutex.Signal();
>    return thread;
> @@ -1627,23 +1623,20 @@
>    if (lockCount > 0) {
>      lockCount--;
>      return;
>    }
>  
>    // otherwise mark mutex as available
>    ownerThreadId = (pthread_t)-1;
>  #endif
>  
>    PAssertPTHREAD(pthread_mutex_unlock, (&mutex));
> -#ifdef P_LINUX
> -  PThread::Yield();
> -#endif
>  }
>  
> 
>  BOOL PMutex::WillBlock() const
>  {
>  #ifndef P_HAS_RECURSIVE_MUTEX
>    pthread_t currentThreadId = pthread_self();
>    if (currentThreadId == ownerThreadId)
>      return FALSE;
>  #endif
-- 
 _      Damien Sandras
(o-     
//\     It-Optics s.a.
v_/_    GnomeMeeting: http://www.gnomemeeting.org/
        FOSDEM 2004:  http://www.fosdem.org
        H.323 phone:  callto:ils.seconix.com/dsandras seconix com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]