aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/runtime.h
diff options
context:
space:
mode:
authorAlex Brainman <alex.brainman@gmail.com>2011-08-10 17:17:28 +1000
committerAlex Brainman <alex.brainman@gmail.com>2011-08-10 17:17:28 +1000
commit9c774c3f2665e2ad123e500bef1fdf0ba0072e83 (patch)
treea8eab12755d85c952607b0cc0895b198d0cd099a /src/pkg/runtime/runtime.h
parent8fced60a722e4ef58e69828235587b0fb39316e8 (diff)
downloadgo-9c774c3f2665e2ad123e500bef1fdf0ba0072e83.tar.xz
runtime: correct seh installation during callbacks
Every time we enter callback from Windows, it is possible that go exception handler is not at the top of per-thread exception handlers chain. So it needs to be installed again. At this moment this is done by replacing top SEH frame with SEH frame as at time of syscall for the time of callback. This is incorrect, because, if exception strike, we won't be able to call any exception handlers installed inside syscall, because they are not in the chain. This changes procedure to add new SEH frame on top of existing chain instead. I also removed m sehframe field, because I don't think it is needed. We use single global exception handler everywhere. R=golang-dev, r CC=golang-dev, hectorchu https://golang.org/cl/4832060
Diffstat (limited to 'src/pkg/runtime/runtime.h')
-rw-r--r--src/pkg/runtime/runtime.h3
1 files changed, 0 insertions, 3 deletions
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h
index 8c5403f444..00be565ce0 100644
--- a/src/pkg/runtime/runtime.h
+++ b/src/pkg/runtime/runtime.h
@@ -248,12 +248,9 @@ struct M
uint32 freghi[16]; // D[i] msb and F[i+16]
uint32 fflag; // floating point compare flags
#ifdef __WINDOWS__
- void* sehframe;
-
#ifdef _64BIT
void* gostack;
#endif
-
#endif
};