diff options
author | Jeff Law <law@gcc.gnu.org> | 1998-09-04 19:11:54 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-09-04 19:11:54 -0600 |
commit | b79f73df6aed1b1411b1b505bc5dd48e9ed78609 (patch) | |
tree | e2a997b294961a00f5d259edefbef93b8501c089 /libchill/continue.c | |
parent | 1802393487391d209c472f42c92cc2ba4d34469f (diff) | |
download | gcc-b79f73df6aed1b1411b1b505bc5dd48e9ed78609.zip gcc-b79f73df6aed1b1411b1b505bc5dd48e9ed78609.tar.gz gcc-b79f73df6aed1b1411b1b505bc5dd48e9ed78609.tar.bz2 |
* Chill runtime moved into toplevel libchill.
* Makefile.in Revamped due to move. Add multilib support.
* configure.in: Similarly. Use autoconf.
* powerset.h: Do not depend on BITS_PER_UNIT.
From-SVN: r22238
Diffstat (limited to 'libchill/continue.c')
-rw-r--r-- | libchill/continue.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/libchill/continue.c b/libchill/continue.c new file mode 100644 index 0000000..76d457d --- /dev/null +++ b/libchill/continue.c @@ -0,0 +1,83 @@ +/* Implement tasking-related runtime actions for CHILL. + Copyright (C) 1992,1993 Free Software Foundation, Inc. + Author: Wilfried Moser + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include "rtltypes.h" +#include "rts.h" + +/* + * function __continue + * + * parameters: + * evaddr pointer to Eventlocation + * filename source file name where function gets called + * lineno linenumber in source file + * + * returns: + * void + * + * exceptions: + * none + * + * abstract: + * implement the CHILL CONTINUE action. + */ + +void +__continue (evaddr, filename, lineno) + Event_Queue **evaddr; + char *filename; + int lineno; +{ + Event_Queue *ev = *evaddr; + Event_Queue *wrk; + + if (ev == 0) + /* nothing to do */ + return; + + /* search for 1st one is not already continued */ + while (ev && ev->is_continued) + ev = ev->forward; + if (!ev) + /* all have been continued in that queue, do nothing */ + return; + + wrk = ev->startlist; + while (wrk) + { + Event_Queue *tmp = (Event_Queue *)wrk->listhead; + + while (tmp->forward != wrk) + tmp = tmp->forward; + tmp->forward = wrk->forward; + wrk = wrk->chain; + } + + /* so far so good, continue this one */ + ev->is_continued = 1; + ev->who_continued = THIS; + + /* tell the runtime system to activate the process */ + __continue_that (ev->this, ev->priority, filename, lineno); +} + +/* force function print_event to be linked */ +extern void __print_event (); +static EntryPoint pev = __print_event; |