diff options
Diffstat (limited to 'Mac/Python')
-rw-r--r-- | Mac/Python/macglue.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c index 240fc01..67c3918 100644 --- a/Mac/Python/macglue.c +++ b/Mac/Python/macglue.c @@ -412,12 +412,24 @@ PyOS_CheckStack() { char here; static char *sentinel = 0; + static PyThreadState *thread_for_sentinel = 0; if ( sentinel == 0 ) { sentinel = &here - StackSpace() + MINIMUM_STACK_SIZE; } - if ( &here < sentinel ) - return -1; + if ( thread_for_sentinel == 0 ) { + thread_for_sentinel = PyThreadState_Get(); + } + if ( &here < sentinel ) { + if (thread_for_sentinel == PyThreadState_Get()) { + return -1; +#if 0 + } else { + /* Else we are unsure... */ + fprintf(stderr, "Stackcheck in other thread (was %x now %x)\n", thread_for_sentinel,PyThreadState_Get()); +#endif + } + } return 0; } #endif /* USE_STACKCHECK */ |