2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
9 /* ********************************************************************** */
13 /* Author: Hartmut Reuter */
14 /* reuter@rzg.mpg.de */
17 /* Function - These routiens implement thread names for the */
18 /* logging from the servers */
20 /* ********************************************************************** */
22 #include <afsconfig.h>
23 #include <afs/param.h>
35 #if defined(AFS_PTHREAD_ENV)
37 #else /* defined(AFS_PTHREAD_ENV) */
39 #endif /* defined(AFS_PTHREAD_ENV) */
41 #define MAX_THREADS 128
42 #define MAXTHREADNAMELENGTH 64
44 #if defined(AFS_PTHREAD_ENV)
45 pthread_t ThreadId[MAX_THREADS];
46 #else /* defined(AFS_PTHREAD_ENV) */
47 PROCESS ThreadId[MAX_THREADS];
48 #endif /* defined(AFS_PTHREAD_ENV) */
49 char ThreadName[MAX_THREADS][MAXTHREADNAMELENGTH];
55 static char MainThread[] = "main";
58 #ifdef AFS_PTHREAD_ENV
60 #else /* AFS_PTHREAD_ENV */
62 #endif /* AFS_PTHREAD_ENV */
64 #ifdef AFS_PTHREAD_ENV
66 #else /* AFS_PTHREAD_ENV */
67 me = (PROCESS) LWP_ThreadId();
68 #endif /* AFS_PTHREAD_ENV */
70 for (i = 0; i < nThreads; i++) {
71 if (ThreadId[i] == me) {
72 ptr = &ThreadName[i][0];
82 #ifdef AFS_PTHREAD_ENV
84 #else /* AFS_PTHREAD_ENV */
86 #endif /* AFS_PTHREAD_ENV */
91 for (i = 0; i < nThreads; i++) {
92 if (ThreadId[i] == id) {
93 strncpy(&ThreadName[i][0], name, MAXTHREADNAMELENGTH);
97 if (nThreads == MAX_THREADS)
99 ThreadId[nThreads] = id;
100 strncpy(&ThreadName[nThreads][0], name, MAXTHREADNAMELENGTH);
101 ThreadName[nThreads][MAXTHREADNAMELENGTH - 1] = 0;
109 #ifdef AFS_PTHREAD_ENV
111 #else /* AFS_PTHREAD_ENV */
113 #endif /* AFS_PTHREAD_ENV */
114 char *new, char *old)
118 for (i = 0; i < nThreads; i++) {
119 if (ThreadId[i] == id) {
121 strncpy(old, &ThreadName[i][0], MAXTHREADNAMELENGTH);
122 strncpy(&ThreadName[i][0], new, MAXTHREADNAMELENGTH);