A local continuation can be set in a specific function to capture the state of the function. After a local continuation has been set can be resumed in order to restore the state of the function at the point where the local continuation was set.
Files | |
file | lc.h |
Local continuations. | |
file | lc-switch.h |
Implementation of local continuations based on switch() statment. | |
file | lc-addrlabels.h |
Implementation of local continuations based on the "Labels as values" feature of gcc. | |
Defines | |
#define | __LC_SWTICH_H__ |
#define | LC_INIT(s) s = 0; |
#define | LC_RESUME(s) switch(s) { case 0: |
#define | LC_SET(s) s = __LINE__; case __LINE__: |
#define | LC_END(s) } |
#define | LC_INIT(s) s = NULL |
#define | LC_RESUME(s) |
#define | LC_SET(s) do { ({ __label__ resume; resume: (s) = &&resume; }); }while(0) |
#define | LC_END(s) |
Typedefs | |
typedef unsigned short | lc_t |
typedef void * | lc_t |