I use apr with httpd 2.0.48, in vc6sp5 debug mode, when thread
die, at ExitThread throws:
Unhandled exception in xxx.exe(MSVCRT.DLL): 0xC0000005: Access
Violation
But in release mode, no errors. The test code is:
#include "apr_portable.h"
void * __stdcall worker(apr_thread_t *thd, void *
data)
{ int i = *(int *)data; //apr_thread_detach(thd);
fprintf(stdout, "i: %d\n", i);
apr_thread_exit(thd, APR_SUCCESS);
return NULL;
} int main(int argc, char *argv[])
{ apr_pool_t *pool = NULL; apr_thread_t *at = NULL; apr_status_t status = 0, rc = 0; int i = 120; status = apr_pool_initialize();
if(status != APR_SUCCESS) { abort(); } //atexit(apr_terminate); status = apr_pool_create(&pool, NULL); status = apr_thread_create(&at, NULL, worker, &i, pool); status = apr_thread_join(&rc, at);
return 0;
} |