This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: swapcontext() slow
- From: Stas Sergeev <stsp at list dot ru>
- To: Godmar Back <godmar at gmail dot com>, "libc-help at sourceware dot org" <libc-help at sourceware dot org>
- Date: Fri, 22 Jan 2016 14:03:26 +0300
- Subject: Re: swapcontext() slow
- Authentication-results: sourceware.org; auth=none
- References: <56A0D8BA dot 6020605 at list dot ru> <20160121164016 dot GH14840 at vapier dot lan> <CAB4+JYKbmhvg0og7FqBi8wL5pDryyRrm1Ap80CNx5=4YwctqDA at mail dot gmail dot com> <20160121174757 dot GN14840 at vapier dot lan>
21.01.2016 20:47, Mike Frysinger ÐÐÑÐÑ:
> On 21 Jan 2016 12:24, Godmar Back wrote:
>> On Thu, Jan 21, 2016 at 11:40 AM, Mike Frysinger <vapier@gentoo.org> wrote:
>>> these functions are deprecated/dead -- they no longer exist in the latest
>>> POSIX specification. the preference would be to stop using them. i think
>>> we might consider dropping them in a future glibc version.
>>
>> Interesting - what's replacing them, if anything?
>>
>> Will there be any support infrastructure for portable user-level threading?
>
> use pthreads. there are usually implementations for whatever OS you
> want. at least more portable than the context functions.
Have you seen the coroutine implementation on pthreads?
This is usually a horrible "emulation" with a bunch of
synchronization primitives. pthreads are pre-emptive, and
emulating the cooperative execution with them is dirty and
the resulting code is very slow, compared to the straight-forward
stack switch+jump.
Could you please point me to an adequate implementation?
If there is none, there is no way to even think about removing
this API.