Local continuations
[Pt]
Detailed Description
Local continuations form the basis for implementing protothreads. 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.
Define Documentation
#define LC_INIT |
( |
s |
|
) |
s = 0; |
#define LC_INIT |
( |
s |
|
) |
s = NULL |
#define LC_RESUME |
( |
s |
|
) |
switch(s) { case 0: |
Value:do { \
if(s != NULL) { \
goto *s; \
} \
} while(0)
#define LC_SET |
( |
s |
|
) |
s = __LINE__; case __LINE__: |
#define LC_SET |
( |
s |
|
) |
do { ({ __label__ resume; resume: (s) = &&resume; }); }while(0) |
Typedef Documentation
typedef unsigned short lc_t |