@@ -12,15 +12,6 @@ namespace Python.Runtime
1212 /// </summary>
1313 public class PythonEngine : IDisposable
1414 {
15- [ DllImport ( "Kernel32" , EntryPoint = "GetCurrentThreadId" , ExactSpelling = true ) ]
16- private static extern uint GetCurrentThreadId ( ) ;
17-
18- [ DllImport ( "libc" , EntryPoint = "pthread_self" ) ]
19- private static extern IntPtr pthread_selfLinux ( ) ;
20-
21- [ DllImport ( "pthread" , EntryPoint = "pthread_self" , CallingConvention = CallingConvention . Cdecl ) ]
22- private static extern ulong pthread_selfOSX ( ) ;
23-
2415 public static ShutdownMode ShutdownMode
2516 {
2617 get => Runtime . ShutdownMode ;
@@ -582,28 +573,8 @@ public static void Exec(string code, IntPtr? globals = null, IntPtr? locals = nu
582573 /// <returns>The native thread ID.</returns>
583574 public static ulong GetNativeThreadID ( )
584575 {
585- if ( Runtime . PyVersion >= new Version ( 3 , 8 ) )
586- {
587- dynamic threading = Py . Import ( "threading" ) ;
588- return threading . get_native_id ( ) ;
589- }
590-
591- if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
592- {
593- return GetCurrentThreadId ( ) ;
594- }
595-
596- if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Linux ) )
597- {
598- return ( ulong ) pthread_selfLinux ( ) ;
599- }
600-
601- if ( RuntimeInformation . IsOSPlatform ( OSPlatform . OSX ) )
602- {
603- return pthread_selfOSX ( ) ;
604- }
605-
606- return 0 ;
576+ dynamic threading = Py . Import ( "threading" ) ;
577+ return threading . get_ident ( ) ;
607578 }
608579
609580 /// <summary>
@@ -613,22 +584,12 @@ public static ulong GetNativeThreadID()
613584 /// <returns>The number of thread states modified; this is normally one, but will be zero if the thread id isn’t found.</returns>
614585 public static int Interrupt ( ulong nativeThreadID )
615586 {
616- if ( Runtime . PyVersion >= new Version ( 3 , 7 ) )
617- {
618- if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
619- {
620- return Runtime . PyThreadState_SetAsyncExc37Windows ( nativeThreadID , Exceptions . KeyboardInterrupt ) ;
621- }
622-
623- return Runtime . PyThreadState_SetAsyncExc37NonWindows ( ( UIntPtr ) nativeThreadID , Exceptions . KeyboardInterrupt ) ;
624- }
625-
626587 if ( RuntimeInformation . IsOSPlatform ( OSPlatform . Windows ) )
627588 {
628- return Runtime . PyThreadState_SetAsyncExc36Windows ( ( long ) nativeThreadID , Exceptions . KeyboardInterrupt ) ;
589+ return Runtime . PyThreadState_SetAsyncExcLLP64 ( ( uint ) nativeThreadID , Exceptions . KeyboardInterrupt ) ;
629590 }
630591
631- return Runtime . PyThreadState_SetAsyncExc36NonWindows ( ( IntPtr ) nativeThreadID , Exceptions . KeyboardInterrupt ) ;
592+ return Runtime . PyThreadState_SetAsyncExcLP64 ( nativeThreadID , Exceptions . KeyboardInterrupt ) ;
632593 }
633594
634595 /// <summary>
0 commit comments