aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32term.c
diff options
context:
space:
mode:
authorEli Zaretskii2015-11-21 19:44:02 +0200
committerEli Zaretskii2015-11-21 19:44:02 +0200
commitd696d62fea48096680d6d511a71c4df56d00a51f (patch)
treeec9d8707142e396e0de00fffbc5dd9df28800d80 /src/w32term.c
parente6b1818f87f559fdd854bdace2801637caffe6ae (diff)
downloademacs-d696d62fea48096680d6d511a71c4df56d00a51f.tar.gz
emacs-d696d62fea48096680d6d511a71c4df56d00a51f.zip
Simplify recording of main thread's ID on MS-Windows
* src/w32term.c (w32_initialize): * src/w32console.c (initialize_w32_display): * src/w32fns.c (globals_of_w32fns): Don't record the main thread ID independently for each type of session (GUI, TTY, batch). * src/w32term.c (w32_init_main_thread): New function, records the main thread's thread ID. * src/w32term.h: Add prototype for w32_init_main_thread. * src/emacs.c (main) [WINDOWSNT]: Call w32_init_main_thread. * src/emacs-module.c [WINDOWSNT]: Rename main_thread_id to main_thread, for consistency with other threading libraries. All users changed. Include w32term.h. (check_main_thread) [WINDOWSNT]: Simplify the test: no need to make sure the main thread is alive, as we hold a handle on it opened by w32_init_main_thread. (module_init) [WINDOWSNT]: Reuse the thread ID recorded by w32_init_main_thread, instead of calling the requisite APIs once more.
Diffstat (limited to 'src/w32term.c')
-rw-r--r--src/w32term.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/w32term.c b/src/w32term.c
index f764e250aa8..f48e72553a5 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6925,6 +6925,15 @@ x_delete_display (struct w32_display_info *dpyinfo)
6925 6925
6926/* Set up use of W32. */ 6926/* Set up use of W32. */
6927 6927
6928void
6929w32_init_main_thread (void)
6930{
6931 dwMainThreadId = GetCurrentThreadId ();
6932 DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
6933 GetCurrentProcess (), &hMainThread, 0, TRUE,
6934 DUPLICATE_SAME_ACCESS);
6935}
6936
6928DWORD WINAPI w32_msg_worker (void * arg); 6937DWORD WINAPI w32_msg_worker (void * arg);
6929 6938
6930static void 6939static void
@@ -6985,10 +6994,6 @@ w32_initialize (void)
6985 terminates */ 6994 terminates */
6986 init_crit (); 6995 init_crit ();
6987 6996
6988 dwMainThreadId = GetCurrentThreadId ();
6989 DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
6990 GetCurrentProcess (), &hMainThread, 0, TRUE, DUPLICATE_SAME_ACCESS);
6991
6992 /* Wait for thread to start */ 6997 /* Wait for thread to start */
6993 { 6998 {
6994 MSG msg; 6999 MSG msg;