MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / looper_seh

Function looper_seh

src/jrd/exe.cpp:1591–1610  ·  view source on GitHub ↗

Start looper under Windows SEH (Structured Exception Handling) control

Source from the content-addressed store, hash-verified

1589
1590// Start looper under Windows SEH (Structured Exception Handling) control
1591static void looper_seh(thread_db* tdbb, Request* request, const StmtNode* node)
1592{
1593#ifdef WIN_NT
1594 START_CHECK_FOR_EXCEPTIONS(NULL);
1595#endif
1596 // TODO:
1597 // 1. Try to fix the problem with MSVC C++ runtime library, making
1598 // even C++ exceptions that are implemented in terms of Win32 SEH
1599 // getting catched by the SEH handler below.
1600 // 2. Check if it really is correct that only Win32 catches CPU
1601 // exceptions (such as SEH) here. Shouldn't any platform capable
1602 // of handling signals use this stuff?
1603 // (see jrd/ibsetjmp.h for implementation of these macros)
1604
1605 EXE_looper(tdbb, request, node);
1606
1607#ifdef WIN_NT
1608 END_CHECK_FOR_EXCEPTIONS(NULL);
1609#endif
1610}
1611
1612
1613static void release_blobs(thread_db* tdbb, Request* request)

Callers 1

execute_looperFunction · 0.85

Calls 1

EXE_looperFunction · 0.85

Tested by

no test coverage detected