This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Add and use new glibc-internal futex API.
- From: Torvald Riegel <triegel at redhat dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Cc: GLIBC Devel <libc-alpha at sourceware dot org>, Roland McGrath <roland at hack dot frob dot com>
- Date: Tue, 09 Jun 2015 16:47:02 +0200
- Subject: Re: [PATCH] Add and use new glibc-internal futex API.
- Authentication-results: sourceware.org; auth=none
- References: <1433796158 dot 21461 dot 438 dot camel at triegel dot csb> <5576F1A8 dot 6070304 at linaro dot org>
On Tue, 2015-06-09 at 11:01 -0300, Adhemerval Zanella wrote:
> On 08-06-2015 17:42, Torvald Riegel wrote:
> > +/* Like futex_wait but cancelable. */
> > +static __always_inline int
> > +futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
> > + int private)
> > +{
> > + int oldtype;
> > + oldtype = __pthread_enable_asynccancel ();
> > + int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
> > + __pthread_disable_asynccancel (oldtype);
> > + switch (err)
>
> I would prefer to follow c6bb095eb and just create a lll_futex_timed_wait_cancel
> that call SYSCALL_CANCEL instead (since the idea of my patch is just to remove
> all the *_{enable,disable}_asynccancel calls). However I can also add this change
> on my upcoming patches.
My assumption was that we'll eventually phase out lll_futex_*. Using
SYSCALL_CANCEL inside of the futex_* functions is perfectly fine for me.
I just wanted to wait for your patch to land before we do that.
We could also add lll_futex_*_wait_cancel, but I'd prefer to not add
more lll_futex versions. I guess that whether we'd need
lll_futex_*_wait_cancel for the lowlevellock would depend on whether
your cancellation work goes in first or we use futex_ inside of the
lowlevellock earlier.
Let me know if you disagree or I misunderstood something.