On 9 January 2015 at 10:40, bulk88 <bul...@hotmail.com> wrote:
> sisyph...@optusnet.com.au wrote:
>> If different runtimes are used (as might happen with your other-way-about
>> configuration) then you can run into problems - eg when a handle that has
>> been created by one runtime gets passed to the other runtime (whereupon the
>> "other" runtime says "wtf is this ?" and promptly crashes).
>>  From memory, Win32::SharedFileOpen was unusable if the compiler that
>> built it used a different runtime to that used by perl.
>
>
> That would be a coding mistake that is easy to fix if you have all the
> source code available. Use perl exported win32_*() functions, not c std lib
> (MS CRT) functions. That guarantees you are using the same CRT as perl even
> if you/your compiler doesnt know the name of that CRT or what it is. Also
> Perl [annoyingly] hooks most of CRT, and all of stdio with CPP macros, from
> the code inside XSUB.h. I have never personally seen any negative effects
> from multiple CRTs in 1 perl process/XS module being a different CRT from
> core's CRT. Of course for L2 caching reasons, multiple CRTs are bad, but
> many apps (try firefox) will have multiple CRTs inside for various reasons.

The problem with Win32::SharedFileOpen was fixed except for the
outstanding problem with perl interp structs detailed in perl #121448.

Reply via email to