From 6d5463231940e3c64e5f458deeb69e3cf4800b41 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 5 Apr 2014 06:50:57 -0600 Subject: [PATCH] places on Windows: fix OS thread identification The bug particularly broke `#:async-apply` handling for an FFI callback, causing the current thread always to be equated with the target thread. For example, the teachpack documentation (which now renders images to SVG) kept crashing on a multi-place build due to callbacks getting invoked in the wrong place. --- racket/src/racket/src/mzrt.c | 2 +- racket/src/racket/src/mzrt.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/racket/src/racket/src/mzrt.c b/racket/src/racket/src/mzrt.c index 38308cc94f..30baa11ec9 100644 --- a/racket/src/racket/src/mzrt.c +++ b/racket/src/racket/src/mzrt.c @@ -187,7 +187,7 @@ DWORD WINAPI mzrt_win_thread_stub(void *data) mzrt_thread_id mz_proc_thread_self() { #ifdef WIN32 - return GetCurrentThread(); + return GetCurrentThreadId(); #else return pthread_self(); #endif diff --git a/racket/src/racket/src/mzrt.h b/racket/src/racket/src/mzrt.h index 61fb6f6c57..69e91c9a9f 100644 --- a/racket/src/racket/src/mzrt.h +++ b/racket/src/racket/src/mzrt.h @@ -21,7 +21,7 @@ void mzrt_set_user_break_handler(void (*user_break_handler)(int)); #if (defined(__WIN32__) || defined(WIN32) || defined(_WIN32)) # include -typedef HANDLE mzrt_thread_id; +typedef DWORD mzrt_thread_id; #else #include typedef pthread_t mzrt_thread_id;