Andres Freund wrote:
> On 2013-07-24 11:26:00 -0400, Tom Lane wrote:
> > So I'm going to end up hand-implementing the same kind of manipulation
> > we frequently use with traditional Lists, namely keep a second variable
> > that's the preceding list element (not the next one) so I can unlink and
> > delete the target element when I find it. ilist.h is not offering me
> > any useful support at all for this scenario. Seems like we're missing
> > a bet here.
>
> Hm. Yes. This should be added. I didn't need it so far, but I definitely
> can see usecases.
>
> slist_delete_current(slist_mutable_iter *)?
>
> I am willing to cough up a patch if you want.
>
> This will require another member variable in slist_mutable_iter which
> obviously will need to be maintained, but that seems fine to me since it
> will reduce the cost of actually deleting noticeably.
Amusingly, this will mean ForgetBackgroundWorker() will need to have a
slist_mutable_iter * argument if it wants to use the new function ...
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services