File: stp.h

package info (click to toggle)
guile-core 1%3A1.3.4-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,348 kB
  • ctags: 5,474
  • sloc: ansic: 45,175; lisp: 9,030; sh: 7,720; asm: 1,580; makefile: 483; awk: 162; csh: 50
file content (51 lines) | stat: -rw-r--r-- 1,507 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef STP_H
#define STP_H

/*
 * QuickThreads -- Threads-building toolkit.
 * Copyright (c) 1993 by David Keppel
 *
 * Permission to use, copy, modify and distribute this software and
 * its documentation for any purpose and without fee is hereby
 * granted, provided that the above copyright notice and this notice
 * appear in all copies.  This software is provided as a
 * proof-of-concept and for demonstration purposes; there is no
 * representation about the suitability of this software for any
 * purpose.
 */

typedef struct stp_t stp_t;

/* Each thread starts by calling a user-supplied function of this
   type. */

typedef void (stp_userf_t)(void *p0);

/* Call this before any other primitives. */
extern void stp_init();

/* When one or more threads are created by the main thread,
   the system goes multithread when this is called.  It is done
   (no more runable threads) when this returns. */

extern void stp_start (void);

/* Create a thread and make it runable.  When the thread starts
   running it will call `f' with the argument `p0'. */

extern void stp_create (stp_userf_t *f, void *p0);

/* The current thread stops running but stays runable.
   It is an error to call `stp_yield' before `stp_start'
   is called or after `stp_start' returns. */

extern void stp_yield (void);

/* Like `stp_yield' but the thread is discarded.  Any intermediate
   state is lost.  The thread can also terminate by simply
   returning. */

extern void stp_abort (void);


#endif /* ndef STP_H */