1#include "EXTERN.h"
2#include "perl.h"
3
4#ifdef USE_DECLSPEC_THREAD
5__declspec(thread) void *PL_current_context = NULL;
6#endif
7
8void
9Perl_set_context(void *t)
10{
11#if defined(USE_ITHREADS)
12#  ifdef USE_DECLSPEC_THREAD
13    Perl_current_context = t;
14#  else
15    DWORD err = GetLastError();
16    TlsSetValue(PL_thr_key,t);
17    SetLastError(err);
18#  endif
19#endif
20}
21
22void *
23Perl_get_context(void)
24{
25#if defined(USE_ITHREADS)
26#  ifdef USE_DECLSPEC_THREAD
27    return Perl_current_context;
28#  else
29    DWORD err = GetLastError();
30    void *result = TlsGetValue(PL_thr_key);
31    SetLastError(err);
32    return result;
33#  endif
34#else
35    return NULL;
36#endif
37}
38