# define MAYDAY_CATCH(e) printf("%d %s:%d Catched '%s'\n", \
xbt_getpid(), __FILE__, __LINE__, \
(e).msg \
- ),
+ ),
#else
# define MAYDAY_SAVE(m)
# define MAYDAY_RESTORE(m)
* following code which shows some pitfalls and contains many errors (assuming
* a mallocex() function which throws an exception if malloc(3) fails):
*
- * \don'tinclude ex.c
+ * \dontinclude ex.c
* \skip BAD_EXAMPLE
* \until end_of_bad_example
*
*/
typedef struct {
__ex_mctx_t *ctx_mctx; /* permanent machine context of enclosing try/catch */
- volatile int ctx_caught; /* temporary flag whether exception was caught */
+ int ctx_caught; /* temporary flag whether exception was caught */
volatile xbt_ex_t exception; /* temporary exception storage */
} xbt_running_ctx_t;
/* the exception context */
typedef xbt_running_ctx_t *(*xbt_running_ctx_fetcher_t) (void);
XBT_PUBLIC_DATA(xbt_running_ctx_fetcher_t) __xbt_running_ctx_fetch;
-extern xbt_running_ctx_t *__xbt_ex_ctx_default(void);
+XBT_PUBLIC( xbt_running_ctx_t *)__xbt_ex_ctx_default(void);
/* the termination handler */
typedef void (*ex_term_cb_t) (xbt_ex_t *);
XBT_PUBLIC_DATA(ex_term_cb_t) __xbt_ex_terminate;
-extern void __xbt_ex_terminate_default(xbt_ex_t * e);
+XBT_PUBLIC( void )__xbt_ex_terminate_default(xbt_ex_t * e);
/** @brief Introduce a block where exception may be dealed with
* @hideinitializer