1.0.16.31: --control-stack-size runtime argument
* THREAD_CONTROL_STACK_SIZE becomes DEFAULT_CONTROL_STACK_SIZE.
* Align thread spaces using the larger of BACKEND_PAGE_SIZE and
CONTROL_STACK_ADJUSTMENT_BYTES.
* Take care of aligning both ends of the control stack when setting
up the thread struct -- that way pthread_attr_setstack doesn't have
to worry about alignment.
* Simplify stack setup in on x86oid platforms in
call_into_lisp_first_time: instead of having the nasty window where
ESP/RSP is right at the end of the stack, use pull out the control
stack end right out of the thread struct.
* Minimal documentation.
Not strictly related to --control-stack-size:
* Refactor thread post mortem cleanups to share as much code as
possible and reduce conditionalization. The core functions in the
new world are plan_thread_post_mortem, schedule_thread_post_mortem,
and perform_thread_post_mortem.
* Malloc thread attributes, and destroy them before freeing thread
stacks. (pthread_attr_setstack seems to say that we are not allowed
to free stacks that have attributes referring to them -- hopefully
pthread_attr_destroy gives us the licence we need, and since it is
not entirely clear we are allowed to destroy the attr before the
thread has finished, do it only after pthread_join.)
13 files changed: