xref: /petsc/src/sys/classes/draw/impls/x/xioerr.c (revision 453a69bbde9863bc09727b24622658822743bb61)
1e118a51fSLisandro Dalcin #include <../src/sys/classes/draw/impls/x/ximpl.h> /*I  "petscsys.h" I*/
2e118a51fSLisandro Dalcin 
3e118a51fSLisandro Dalcin #if defined(PETSC_HAVE_SETJMP_H)
4e118a51fSLisandro Dalcin 
5e118a51fSLisandro Dalcin jmp_buf PetscXIOErrorHandlerJumpBuf;
6e118a51fSLisandro Dalcin 
7d71ae5a4SJacob Faibussowitsch void PetscXIOErrorHandlerJump(PETSC_UNUSED void *ctx)
8d71ae5a4SJacob Faibussowitsch {
9e118a51fSLisandro Dalcin   longjmp(PetscXIOErrorHandlerJumpBuf, 1);
10e118a51fSLisandro Dalcin }
11e118a51fSLisandro Dalcin 
128434afd1SBarry Smith PetscXIOErrorHandlerFn *PetscSetXIOErrorHandler(PetscXIOErrorHandlerFn *xioerrhdl)
13d71ae5a4SJacob Faibussowitsch {
14*453a69bbSBarry Smith   return (PetscXIOErrorHandlerFn *)(PetscVoidFn *)XSetIOErrorHandler((XIOErrorHandler)(void (*)(void))xioerrhdl);
15e118a51fSLisandro Dalcin }
16e118a51fSLisandro Dalcin 
17e118a51fSLisandro Dalcin #endif
18