Commit | Line | Data |
2986a63f |
1 | |
2 | /* |
3 | * Copyright © 2001 Novell, Inc. All Rights Reserved. |
4 | * |
5 | * You may distribute under the terms of either the GNU General Public |
6 | * License or the Artistic License, as specified in the README file. |
7 | * |
8 | */ |
9 | |
10 | /* |
11 | * FILENAME : nw5thread.c |
12 | * DESCRIPTION : Thread related functions. |
13 | * Author : SGP |
14 | * Date : January 2001. |
15 | * |
16 | */ |
17 | |
18 | |
19 | |
20 | #include "EXTERN.h" |
21 | #include "perl.h" |
22 | |
2986a63f |
23 | //For Thread Local Storage |
24 | #include "win32ish.h" // For "BOOL", "TRUE" and "FALSE" |
25 | #include "nwtinfo.h" |
26 | |
27 | #ifdef USE_DECLSPEC_THREAD |
28 | __declspec(thread) void *PL_current_context = NULL; |
29 | #endif |
30 | |
31 | |
32 | void |
33 | Perl_set_context(void *t) |
34 | { |
3db8f154 |
35 | #if defined(USE_ITHREADS) |
2986a63f |
36 | # ifdef USE_DECLSPEC_THREAD |
37 | Perl_current_context = t; |
38 | # else |
39 | fnAddThreadCtx(PL_thr_key, t); |
40 | # endif |
41 | #endif |
42 | } |
43 | |
44 | |
45 | void * |
46 | Perl_get_context(void) |
47 | { |
3db8f154 |
48 | #if defined(USE_ITHREADS) |
2986a63f |
49 | # ifdef USE_DECLSPEC_THREAD |
50 | return Perl_current_context; |
51 | # else |
52 | return(fnGetThreadCtx(PL_thr_key)); |
53 | # endif |
54 | #else |
55 | return NULL; |
56 | #endif |
57 | } |
58 | |
59 | |
60 | //To Remove the Thread Context stored during Perl_set_context |
61 | BOOL |
62 | Remove_Thread_Ctx(void) |
63 | { |
3db8f154 |
64 | #if defined(USE_ITHREADS) |
2986a63f |
65 | # ifdef USE_DECLSPEC_THREAD |
66 | return TRUE; |
67 | # else |
68 | return(fnRemoveThreadCtx(PL_thr_key)); |
69 | # endif |
70 | # else |
71 | return TRUE; |
72 | #endif |
73 | } |
74 | |
75 | |
76 | //PL_thr_key - Not very sure if this is global or per thread. When multiple scripts |
77 | //run simultaneously on NetWare, this will give problems. Hence in nwtinfo.c, the |
78 | //current thread id is used as the TLS index & PL_thr_key is not used. |
79 | //This has to be checked???? - sgp |
80 | |