YAP 7.1.0
corout.h
1/*************************************************************************
2* *
3* YAP Prolog *
4* *
5* Yap Prolog was developed at NCCUP - Universidade do Porto *
6* *
7* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 *
8* *
9**************************************************************************
10* *
11* File: corout.c *
12* Last rev: *
13* mods: *
14* comments: Co-routining from within YAP *
15* *
16*************************************************************************/
17#ifdef SCCS
18static char SccsId[]="%W% %G%";
19#endif
20
21typedef struct sus_record_struct {
22 Functor f;
23 Term NR; /* next record for same variable */
24 Term SG; /* actual suspended goal */
25 Term NS; /* other suspended goals */
27
28typedef struct sus_tag_struct {
29 Term ActiveSus; /* if unbound suspension active, if bound terminated */
30 CELL sus_id;
31 Term TimeStamp; /* actual suspended goal */
32 Term SG; /* list of suspended goals */
33} sus_tag;
34
35#ifdef COROUTINING
36/*********** tags for suspension variables */
37#define AbsSuspendedVar(sustag_ptr) AbsAppl(((CELL *)(sustag_ptr)))
38#define RepSuspendedVar(val) ((sus_tag *)RepAppl(val))
39#endif
40