21 #include <drizzled/internal/my_sys.h>
23 #include <drizzled/session.h>
24 #include <drizzled/error.h>
25 #include <drizzled/check_stack_overrun.h>
33 #if defined(STACK_DIRECTION) && (STACK_DIRECTION < 0)
34 static const bool stack_direction_negative =
true;
36 static const bool stack_direction_negative =
false;
39 template <
typename A_T,
typename B_T>
40 inline static long used_stack(A_T A, B_T B)
42 if (stack_direction_negative)
43 return (
long) (A - B);
45 return (
long) (B - A);
48 extern size_t my_thread_stack_size;
53 if ((stack_used=used_stack(session->
thread_stack,(
char*) &stack_used)) >=
54 (
long) (my_thread_stack_size - margin))
56 my_printf_error(ER_STACK_OVERRUN_NEED_MORE, ER(ER_STACK_OVERRUN_NEED_MORE),
58 stack_used,my_thread_stack_size,margin);
bool check_stack_overrun(Session *session, long margin, void *)