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 <afs/param.h>
23 #include <afsconfig.h>
34 #if defined(AFS_PTHREAD_ENV)
36 #else /* defined(AFS_PTHREAD_ENV) */
38 #endif /* defined(AFS_PTHREAD_ENV) */
40 #define MAX_THREADS 128
41 #define MAXTHREADNAMELENGTH 64
43 #if defined(AFS_PTHREAD_ENV)
44 pthread_t ThreadId[MAX_THREADS];
45 #else /* defined(AFS_PTHREAD_ENV) */
46 PROCESS ThreadId[MAX_THREADS];
47 #endif /* defined(AFS_PTHREAD_ENV) */
48 char ThreadName[MAX_THREADS][MAXTHREADNAMELENGTH];
53 static char MainThread[] = "main";
56 #ifdef AFS_PTHREAD_ENV
58 #else /* AFS_PTHREAD_ENV */
60 #endif /* AFS_PTHREAD_ENV */
62 #ifdef AFS_PTHREAD_ENV
64 #else /* AFS_PTHREAD_ENV */
65 me = (PROCESS) LWP_ThreadId();
66 #endif /* AFS_PTHREAD_ENV */
67 ptr = (char *) &MainThread;
68 for (i = 0; i < nThreads; i++) {
69 if (ThreadId[i] == me) {
70 ptr = (char *)&ThreadName[i];
78 int registerthread(id, name)
79 #ifdef AFS_PTHREAD_ENV
81 #else /* AFS_PTHREAD_ENV */
83 #endif /* AFS_PTHREAD_ENV */
88 for (i = 0; i < nThreads; i++) {
89 if (ThreadId[i] == id) {
90 strncpy(&ThreadName[i][0], name, MAXTHREADNAMELENGTH);
94 if (nThreads == MAX_THREADS) return 0;
95 ThreadId[nThreads] = id;
96 strncpy(&ThreadName[nThreads][0], name, MAXTHREADNAMELENGTH);
97 ThreadName[nThreads][MAXTHREADNAMELENGTH -1] =0;
103 int swapthreadname(id, new, old)
104 #ifdef AFS_PTHREAD_ENV
106 #else /* AFS_PTHREAD_ENV */
108 #endif /* AFS_PTHREAD_ENV */
114 for (i = 0; i < nThreads; i++) {
115 if (ThreadId[i] == id) {
117 strncpy(old, &ThreadName[i][0], MAXTHREADNAMELENGTH);
118 strncpy(&ThreadName[i][0], new, MAXTHREADNAMELENGTH);