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>
27 #if defined(AFS_PTHREAD_ENV)
29 #else /* defined(AFS_PTHREAD_ENV) */
31 #endif /* defined(AFS_PTHREAD_ENV) */
33 #define MAX_THREADS 128
34 #define MAXTHREADNAMELENGTH 64
36 #if defined(AFS_PTHREAD_ENV)
37 pthread_t ThreadId
[MAX_THREADS
];
38 #else /* defined(AFS_PTHREAD_ENV) */
39 PROCESS ThreadId
[MAX_THREADS
];
40 #endif /* defined(AFS_PTHREAD_ENV) */
41 char ThreadName
[MAX_THREADS
][MAXTHREADNAMELENGTH
];
47 static char MainThread
[] = "main";
50 #ifdef AFS_PTHREAD_ENV
52 #else /* AFS_PTHREAD_ENV */
54 #endif /* AFS_PTHREAD_ENV */
56 #ifdef AFS_PTHREAD_ENV
58 #else /* AFS_PTHREAD_ENV */
59 me
= (PROCESS
) LWP_ThreadId();
60 #endif /* AFS_PTHREAD_ENV */
62 for (i
= 0; i
< nThreads
; i
++) {
63 if (ThreadId
[i
] == me
) {
64 ptr
= &ThreadName
[i
][0];
74 #ifdef AFS_PTHREAD_ENV
76 #else /* AFS_PTHREAD_ENV */
78 #endif /* AFS_PTHREAD_ENV */
83 for (i
= 0; i
< nThreads
; i
++) {
84 if (ThreadId
[i
] == id
) {
85 strncpy(&ThreadName
[i
][0], name
, MAXTHREADNAMELENGTH
);
89 if (nThreads
== MAX_THREADS
)
91 ThreadId
[nThreads
] = id
;
92 strncpy(&ThreadName
[nThreads
][0], name
, MAXTHREADNAMELENGTH
);
93 ThreadName
[nThreads
][MAXTHREADNAMELENGTH
- 1] = 0;
101 #ifdef AFS_PTHREAD_ENV
103 #else /* AFS_PTHREAD_ENV */
105 #endif /* AFS_PTHREAD_ENV */
106 char *new, char *old
)
110 for (i
= 0; i
< nThreads
; i
++) {
111 if (ThreadId
[i
] == id
) {
113 strncpy(old
, &ThreadName
[i
][0], MAXTHREADNAMELENGTH
);
114 strncpy(&ThreadName
[i
][0], new, MAXTHREADNAMELENGTH
);