Some platforms provide getcontext() but it does not work

Some platforms claim to be POSIX but their getcontext() implementation
does not work. Therefore we update the ASYNC_is_capable() function to test
for this.

RT#4366

Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Matt Caswell
2016-03-16 10:38:39 +00:00
committed by Richard Levitte
parent 685b6f293b
commit c521edc3a1
2 changed files with 20 additions and 31 deletions

View File

@@ -62,7 +62,13 @@
int ASYNC_is_capable(void)
{
return 1;
ucontext_t ctx;
/*
* Some platforms provide getcontext() but it does not work (notably
* MacOSX PPC64). Check for a working getcontext();
*/
return getcontext(&ctx) == 0;
}
void async_local_cleanup(void)