Async error handling and MacOS/X fixes

In the async code for MacOS/X define _XOPEN_SOURCE (if not already
defined) as early as possible.  We must do this before including
any header files, because on MacOS/X <stlib.h> includes <signal.h>
which includes <ucontext.h>.  If we delay defining _XOPEN_SOURCE
and include <ucontext.h> after various system headers are included,
we are very likely to end up with the wrong (truncated) definition
of ucontext_t.

Also, better error handling and some code cleanup in POSIX fibre
construction and destruction.  We make sure that async_fibre_makecontext()
always initializes the fibre to a state that can be freed.

For all implementations, check for error returns from
async_fibre_makecontext().

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Viktor Dukhovni
2015-11-21 20:14:43 -05:00
parent 3d32218812
commit 6e8ac50870
7 changed files with 51 additions and 51 deletions

View File

@@ -51,8 +51,8 @@
* ====================================================================
*/
/* This must be the first #include file */
#include "../async_locl.h"
#include <openssl/async.h>
#ifdef ASYNC_NULL