spinning bug

Brad Fitzpatrick brad@danga.com
Mon, 25 Aug 2003 23:28:50 -0700 (PDT)


Well, try it out.  I'll give it stress testing if you get something
passing your local testing.


On Tue, 26 Aug 2003, Anatoly Vorobey wrote:

> On Mon, Aug 25, 2003 at 07:58:52PM -0700, Brad Fitzpatrick wrote:
> > [ moved to mailing list ]
> >
> > But, how do we tell libevent we want edge-triggered?  If we do it
> > ourselves, how do we get libevent's current mode?
> >
> > Should we fork libevent and include it in memcached?  (perfectly legal,
> > but questionably immoral)
> >
> > - Brad
>
> We could talk to libevent's maintainer about extending libevent
> with the ability to to a) find out at runtime which method is used (this
> is useful anyway) and b) set method-specific flags, like
> an edge_triggered flag for the epoll method. The actual coding needed
> for this is simple, the question is only whether the maintainer'll agree
> this is a good thing. I could write the patch for libevent if we get the
> maintainer to go along with it [however, I do think we need to test this
> idea locally first; it's super-easy to just augment libevent's
> epoll_ctl() calls for creation/modification of an event and add an
> EPOLLET flag to them. We could do that, rebuild libevent, rebuild
> memcached statically and test the hell out of it. We've never tried
> edge-triggered epoll before - it's just an idea I had, and for all
> I know there may be gotchas lurking that I'm not seeing right now].
>
> Alternatively, we could abstract our event handling a bit and make it
> libevent-independent; detect epoll ourselves and use it if it's
> present, fall back on libevent otherwise.
>
> Forking libevent is yucky and probably the worst alternative.
>
> --
> avva@livejournal.com
>
>