From ba62a0e0a9be83ce2dd19bd707d640e65f27344f Mon Sep 17 00:00:00 2001 From: Bill Stoddard Date: Fri, 24 Mar 2000 04:45:27 +0000 Subject: [PATCH] Eliminate os.c and ApacheOS.dsp, ApacheOS.mak, et. al. Update the winnt MPM to use native thread control calls rather than the deprecated stuff in os.c. Even though I don't use APR in the MPM yet, this is forward progress. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84831 13f79535-47bb-0310-9956-ffa450edef68 --- ApacheCore.dsp | 4 ++-- Makefile.win | 6 ------ httpd.dsp | 4 ++-- server/mpm/winnt/mpm_winnt.c | 14 ++++++++------ 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/ApacheCore.dsp b/ApacheCore.dsp index 1c9b45833d..b6970441b8 100644 --- a/ApacheCore.dsp +++ b/ApacheCore.dsp @@ -55,7 +55,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 lib\apr\Release\aprlib.lib os\win32\ApacheOSR\ApacheOS.lib regex\release\regex.lib ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 lib\apr\Release\aprlib.lib regex\release\regex.lib ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /machine:I386 !ELSEIF "$(CFG)" == "ApacheCore - Win32 Debug" @@ -82,7 +82,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 lib\apr\debug\aprlib.lib regex\debug\regex.lib os\win32\ApacheOSD\ApacheOS.lib ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 lib\apr\debug\aprlib.lib regex\debug\regex.lib ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /debug /machine:I386 # SUBTRACT LINK32 /map !ENDIF diff --git a/Makefile.win b/Makefile.win index 1211a9cf17..1cd0c9962c 100644 --- a/Makefile.win +++ b/Makefile.win @@ -53,9 +53,6 @@ _build: cd lib\apr nmake /nologo CFG="aprlib - Win32 $(LONG)" -f aprlib.mak cd ..\.. - cd os\win32 - nmake /nologo CFG="ApacheOS - Win32 $(LONG)" -f ApacheOS.mak - cd ..\.. cd regex nmake /nologo CFG="regex - Win32 $(LONG)" -f regex.mak cd .. @@ -119,9 +116,6 @@ _clean: cd lib\apr nmake /nologo CFG="aprlib - Win32 $(LONG)" -f aprlib.mak clean cd ..\.. - cd os\win32 - nmake /nologo CFG="ApacheOS - Win32 $(LONG)" -f ApacheOS.mak clean - cd ..\.. cd regex nmake /nologo CFG="regex - Win32 $(LONG)" -f regex.mak clean cd .. diff --git a/httpd.dsp b/httpd.dsp index 1c9b45833d..b6970441b8 100644 --- a/httpd.dsp +++ b/httpd.dsp @@ -55,7 +55,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 lib\apr\Release\aprlib.lib os\win32\ApacheOSR\ApacheOS.lib regex\release\regex.lib ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 lib\apr\Release\aprlib.lib regex\release\regex.lib ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /machine:I386 !ELSEIF "$(CFG)" == "ApacheCore - Win32 Debug" @@ -82,7 +82,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 lib\apr\debug\aprlib.lib regex\debug\regex.lib os\win32\ApacheOSD\ApacheOS.lib ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 lib\apr\debug\aprlib.lib regex\debug\regex.lib ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib mswsock.lib /nologo /subsystem:windows /dll /debug /machine:I386 # SUBTRACT LINK32 /map !ENDIF diff --git a/server/mpm/winnt/mpm_winnt.c b/server/mpm/winnt/mpm_winnt.c index 775a9dd5cd..f60b690bc7 100644 --- a/server/mpm/winnt/mpm_winnt.c +++ b/server/mpm/winnt/mpm_winnt.c @@ -1097,7 +1097,7 @@ static void cleanup_thread(thread **handles, int *thread_cnt, int thread_to_clea { int i; - free_thread(handles[thread_to_clean]); + CloseHandle(handles[thread_to_clean]); for (i = thread_to_clean; i < ((*thread_cnt) - 1); i++) handles[i] = handles[i + 1]; (*thread_cnt)--; @@ -1116,7 +1116,7 @@ static void cleanup_thread(thread **handles, int *thread_cnt, int thread_to_clea static void child_main() { int nthreads = ap_threads_per_child; - + int thread_id; thread **child_handles; int rv; ap_status_t status; @@ -1173,12 +1173,14 @@ static void child_main() ap_log_error(APLOG_MARK,APLOG_INFO, APR_SUCCESS, server_conf, "Child %d: Creating %d worker threads",my_pid, nthreads); child_handles = (thread *) alloca(nthreads * sizeof(int)); for (i = 0; i < nthreads; i++) { - child_handles[i] = create_thread((void (*)(void *)) worker_main, (void *) i); + child_handles[i] = (thread *) _beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE) worker_main, + NULL, 0, &thread_id); } if (osver.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) { /* Win95/98: Create the accept thread */ - create_thread((void (*)(void *)) accept_and_queue_connections, (void *) NULL); + _beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE) accept_and_queue_connections, + (void *) i, 0, &thread_id); } /* Wait for the exit event to be signaled by the parent process */ @@ -1224,8 +1226,8 @@ static void child_main() break; } for (i = 0; i < nthreads; i++) { - kill_thread(child_handles[i]); - free_thread(child_handles[i]); + TerminateThread(child_handles[i], 1); + CloseHandle(child_handles[i]); } ap_log_error(APLOG_MARK,APLOG_INFO, APR_SUCCESS, server_conf, "Child %d: All worker threads have ended.", my_pid); -- 2.50.1