diff options
| author | cgf <cgf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-12 01:23:46 +0000 |
|---|---|---|
| committer | cgf <cgf@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-12 01:23:46 +0000 |
| commit | bc7da7ad25a2593da658a98528015e3e158f3e08 (patch) | |
| tree | 3413aae519148394da951f70ce6b49cfa041d228 | |
| parent | 5f9d28869a1983f9a9b542c1fe80e1f35b899384 (diff) | |
| download | ppe42-gcc-bc7da7ad25a2593da658a98528015e3e158f3e08.tar.gz ppe42-gcc-bc7da7ad25a2593da658a98528015e3e158f3e08.zip | |
* gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32
LastError.
(__gthread_getspecific): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38932 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/gthr-win32.h | 22 |
2 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a04f1355eb8..0a3c2e64d87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-01-10 Thomas Pfaff <tpfaff@gmx.net> + + * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32 + LastError. + (__gthread_getspecific): Ditto. + Fri Jan 12 00:04:00 MET 2001 Jan Hubicka <jh@suse.cz> * i386.c (ix86_comparison_operator, fcmov_comparison_operator, diff --git a/gcc/gthr-win32.h b/gcc/gthr-win32.h index 119cbc7d9b9..dbe5e5b4f34 100644 --- a/gcc/gthr-win32.h +++ b/gcc/gthr-win32.h @@ -204,7 +204,16 @@ __gthread_objc_thread_set_data(void *value) void * __gthread_objc_thread_get_data(void) { - return TlsGetValue(__gthread_objc_data_tls); /* Return thread data. */ + DWORD lasterror; + void *ptr; + + lasterror = GetLastError(); + + ptr = TlsGetValue(__gthread_objc_data_tls); /* Return thread data. */ + + SetLastError( lasterror ); + + return ptr; } /* Backend mutex functions */ @@ -413,7 +422,16 @@ __gthread_key_delete (__gthread_key_t key) static inline void * __gthread_getspecific (__gthread_key_t key) { - return TlsGetValue (key); + DWORD lasterror; + void *ptr; + + lasterror = GetLastError(); + + ptr = TlsGetValue(key); + + SetLastError( lasterror ); + + return ptr; } static inline int |

