Nilorea Library
C utilities for networking, threading, graphics
Loading...
Searching...
No Matches
n_exceptions.c
Go to the documentation of this file.
1
9
#include <pthread.h>
10
#include "
nilorea/n_common.h
"
11
#include "
nilorea/n_log.h
"
12
#include "
nilorea/n_exceptions.h
"
13
14
ExceptionContextList
*
__Exceptions
= NULL;
15
19
void
push_exception
(
void
) {
20
ExceptionContextList
* _new = (
ExceptionContextList
*)malloc(
sizeof
(
ExceptionContextList
));
21
22
if
(_new) {
23
_new->
head
=
__Exceptions
;
24
__Exceptions
= _new;
25
}
else
{
26
n_log
(
LOG_ERR
,
"Cannot even add a new exception context !!"
);
27
}
28
}
/* push_exception() */
29
34
void
pop_exception
(
int
ex) {
35
ExceptionContextList
* head = NULL;
36
head =
__Exceptions
->
head
;
37
Free
(
__Exceptions
);
38
__Exceptions
= head;
39
40
if
(ex !=
NO_EXCEPTION
) {
41
if
(
__Exceptions
) {
42
longjmp(
__Exceptions
->
context
, ex);
43
}
44
}
45
}
/* pop_exception */
Free
#define Free(__ptr)
Free Handler to get errors.
Definition
n_common.h:240
ExceptionContextList::context
jmp_buf context
saving the current context
Definition
n_exceptions.h:42
ExceptionContextList::head
struct ExceptionContextList * head
pointer to the next stacked exception
Definition
n_exceptions.h:44
pop_exception
void pop_exception(int ex)
Function to pop an exception in the list.
Definition
n_exceptions.c:34
__Exceptions
ExceptionContextList * __Exceptions
Globale variable for exception stack management.
Definition
n_exceptions.c:14
NO_EXCEPTION
#define NO_EXCEPTION
Possibly Throwed value, everything is fine.
Definition
n_exceptions.h:26
push_exception
void push_exception(void)
Function to push an exception in the list.
Definition
n_exceptions.c:19
ExceptionContextList
Exception stack structure.
Definition
n_exceptions.h:40
n_log
#define n_log(__LEVEL__,...)
Logging function wrapper to get line and func.
Definition
n_log.h:70
LOG_ERR
#define LOG_ERR
error conditions
Definition
n_log.h:57
n_common.h
Common headers and low-level functions & define.
n_exceptions.h
Exception management for C.
n_log.h
Generic log system.
src
n_exceptions.c
Generated on Wed Jul 16 2025 22:55:56 for Nilorea Library by
1.9.8