Loop-detection in assoc_find..
    Miguel DeAvila 
    miguel.j.deavila at gmail.com
       
    Thu Apr 24 22:06:03 UTC 2008
    
    
  
On Thursday 24 April 2008 14:21:19 Trond Norbye wrote:
> 
> On Apr 24, 2008, at 2:01 PM, Miguel DeAvila wrote:
> >
> > Geez .. am I missing something? Seems like the lookahead pointer  
> > will only
> > equal the 'it' pointer  when
> >
> > lookahead->h_next->h_next == it
> >
> > Imagine list
> >
> > 	A->B->C->A
> >
> > Starting at A,
> >
> > it points to A
> > lookahead points to C
> > lookahead != it
> >
> > advance it
> >
> > it points to B
> > lookahead points to A
> > lookahead != it
> >
> > advance it
> >
> > it points to C
> > lookahead points to B
> > lookahead != it
> >
> > now we're back at the beginning of the loop.
> >
> > Did I miss something?
> >
> 
> Yes.. you stopped too soon ;-)
> 
> advance it..
> 
> it points to A
> lookhead points to A
> lookahead == it
> ...
> 
> It will eventually detect a loop, but it may not be the first time ;-)
Ah yes .. my mistake. Since the lookahead pointer is advanced twice for every advance of
the 'it' pointer it will eventually wrap around and "catch up" with it.
Thanks for the pointer ...
Miguel
    
    
More information about the memcached
mailing list