This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Dummy pthread functions in libc considered harmful
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: Alexander Monakov <amonakov at ispras dot ru>
- Cc: Rich Felker <dalias at libc dot org>, Samuel Thibault <samuel dot thibault at ens-lyon dot org>, Andreas Schwab <schwab at suse dot de>, libc-alpha at sourceware dot org
- Date: Tue, 25 Aug 2015 16:27:22 +0200
- Subject: Re: Dummy pthread functions in libc considered harmful
- Authentication-results: sourceware.org; auth=none
- References: <mvmr3ms4sbj dot fsf at hawking dot suse dot de> <20150824153816 dot GC3210 at type dot bordeaux dot inria dot fr> <20150824162250 dot GD32742 at brightrain dot aerifal dot cx> <20150825125035 dot GA3463 at domone> <alpine dot LNX dot 2 dot 20 dot 1508251557030 dot 18864 at monopod dot intra dot ispras dot ru>
On Tue, Aug 25, 2015 at 04:01:20PM +0300, Alexander Monakov wrote:
> On Tue, 25 Aug 2015, OndÅej BÃlka wrote:
> > As we internally already have SINGLE_THREAD_P optimization we should use
> > that optimization for all atomics and locks and get slower path only
> > when there is some thread created.
> >
> > We could export that variable for gcc to also speed up atomics.
>
> It's not possible to use "current process is single-threaded" predicate to
> optimize atomics: they might be operating on shared memory.
>
> (however when libpthread is not linked in, you know that pthread_mutex_lock is
> not operating on shared memory: you'd need pthread_mutexattr_setpshared, which
> is not provided in libc.so.6)
>
You can. Shared memory doesn't matter as you will set that up when
program is single-threaded. That is unless user creates thread in signal
handler which is illegal.