* cygthread.h (cygthread::terminate_thread): Mark private.

* cygthread.cc (cygthread::terminate_thread): Deallocate free_range thread
stuff.
This commit is contained in:
Christopher Faylor 2003-06-02 21:22:02 +00:00
parent cbdc3d1780
commit 3786526ea8
3 changed files with 16 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2003-06-02 Christopher Faylor <cgf@redhat.com>
* cygthread.h (cygthread::terminate_thread): Mark private.
* cygthread.cc (cygthread::terminate_thread): Deallocate free_range
thread stuff.
2003-06-02 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::accept): Rename `signalled'

View File

@ -258,10 +258,15 @@ cygthread::terminate_thread ()
system_printf ("VirtualFree of allocation base %p<%p> failed, %E",
stack_ptr, m.AllocationBase);
h = NULL;
__name = NULL;
stack_ptr = NULL;
(void) InterlockedExchange (&inuse, 0); /* No longer in use */
if (is_freerange)
free (this);
else
{
h = NULL;
__name = NULL;
stack_ptr = NULL;
(void) InterlockedExchange (&inuse, 0); /* No longer in use */
}
}
/* Detach the cygthread from the current thread. Note that the

View File

@ -22,6 +22,7 @@ class cygthread
static bool exiting;
static DWORD WINAPI stub (VOID *);
static DWORD WINAPI simplestub (VOID *);
void terminate_thread ();
public:
static const char * name (DWORD = 0);
cygthread (LPTHREAD_START_ROUTINE, LPVOID, const char *);
@ -33,7 +34,6 @@ class cygthread
void * operator new (size_t);
static cygthread *freerange ();
void exit_thread ();
void terminate_thread ();
static void terminate ();
bool SetThreadPriority (int nPriority) {return ::SetThreadPriority (h, nPriority);}
void zap_h ()