win32-name-event-objects-20040228
[openafs.git] / src / WINNT / pthread / pthread.c
index 8be02f0..0c8918d 100644 (file)
@@ -1,7 +1,13 @@
 /*
- * Copyright (C)  1999, 1998  Transarc Corporation.  All rights reserved.
- *
- *
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ * 
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */
+
+/*
  * This file contains a skeleton pthread implementation for NT.
  * This is not intended to be a fully compliant pthread implementation
  * The purpose of this file is to only implement those functions that
@@ -581,11 +587,15 @@ static DWORD WINAPI terminate_thread_routine(LPVOID param) {
 
 
 static void pthread_sync_terminate_thread(void) {
+
     (pthread_cache_done || pthread_once(&pthread_cache_once, create_once));
 
     if (terminate_thread_handle == INVALID_HANDLE_VALUE) {
+        CHAR eventName[MAX_PATH];
+        static eventCount = 0;
+        sprintf(eventName, "pthread terminate thread %d", eventCount++);
        terminate_thread_wakeup_event = CreateEvent((LPSECURITY_ATTRIBUTES) 0,
-                               TRUE, FALSE, (LPCTSTR) 0);
+                               TRUE, FALSE, (LPCTSTR) eventName);
        terminate_thread_handle = CreateThread((LPSECURITY_ATTRIBUTES) 0, 0, 
                                terminate_thread_routine, (LPVOID) 0, 0, 
                                &terminate_thread_id);
@@ -705,8 +715,11 @@ static cond_waiters_t *get_waiter() {
     if (queue_IsEmpty(&waiter_cache)) {
         new = (cond_waiters_t *) malloc(sizeof(cond_waiters_t));
        if (new != NULL) {
+        CHAR eventName[MAX_PATH];
+        static eventCount = 0;
+        sprintf(eventName, "cond_waiters_t %d", eventCount++);
            new->event = CreateEvent((LPSECURITY_ATTRIBUTES) 0, FALSE,
-                                    FALSE, (LPCTSTR) 0);
+                                    FALSE, (LPCTSTR) eventName);
            if (new->event == NULL) {
                free(new);
                new = NULL;