#define NO_XSLOCKS at your own risk. It can damage with when working with ithreads and psuedo forks. Also a windows process can have multiple C librarys in it simultaneously. (msvcrt.dll and msvcr80.dll). So if you use Perl APIs for IO, they go to the "first/"head" C lib in the process. If you use your local C lib for your XS module, then it often isn't the same one that perl uses. I want #define NO_XSLOCKS  to be a separate choice, since if #define NO_XSLOCKS  turns out to be very wrong based on future bug reports, it needs to be reverted easily without loosing PERL_NO_GET_CONTEXT.

On keeping interp * in an NYTP struct, sometimes thats a good idea, but I need to do more search on it before giving you a better answer.