Files | Defines | Typedefs

Local continuations
[Pt]

Collaboration diagram for Local continuations:

Files

file  lc-addrlabels.h
file  lc-switch.h
file  lc.h

Defines

#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)
#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_H__

Typedefs

typedef void * lc_t
typedef unsigned short lc_t

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_H__

Definition at line 120 of file lc.h.

#define __LC_SWTICH_H__

Definition at line 58 of file lc-switch.h.

#define LC_END (   s  )     }

Definition at line 72 of file lc-switch.h.

#define LC_END (   s  ) 

Definition at line 79 of file lc-addrlabels.h.

#define LC_INIT (   s  )     s = NULL

Definition at line 66 of file lc-addrlabels.h.

#define LC_INIT (   s  )     s = 0;

Definition at line 66 of file lc-switch.h.

#define LC_RESUME (   s  ) 
Value:
do {                                          \
    if(s != NULL) {                             \
      goto *s;                                  \
    }                                           \
  } while(0)

Definition at line 69 of file lc-addrlabels.h.

#define LC_RESUME (   s  )     switch(s) { case 0:

Definition at line 68 of file lc-switch.h.

#define LC_SET (   s  )     do { ({ __label__ resume; resume: (s) = &&resume; }); }while(0)

Definition at line 76 of file lc-addrlabels.h.

#define LC_SET (   s  )     s = __LINE__; case __LINE__:

Definition at line 70 of file lc-switch.h.


Typedef Documentation

typedef void* lc_t

Definition at line 64 of file lc-addrlabels.h.

typedef unsigned short lc_t

Definition at line 64 of file lc-switch.h.