| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 1 | #ifndef _THREAD_H_included | 
 | 2 | #define _THREAD_H_included | 
 | 3 |  | 
| Guido van Rossum | b6775db | 1994-08-01 11:34:53 +0000 | [diff] [blame] | 4 | #define NO_EXIT_PROG		/* don't define exit_prog() */ | 
 | 5 | 				/* (the result is no use of signals on SGI) */ | 
 | 6 |  | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 7 | #ifndef PROTO | 
| Sjoerd Mullender | d10d829 | 1992-09-11 15:19:27 +0000 | [diff] [blame] | 8 | #if defined(__STDC__) || defined(__cplusplus) | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 9 | #define PROTO(args)	args | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 10 | #else | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 11 | #define PROTO(args)	() | 
 | 12 | #endif | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 13 | #endif | 
 | 14 |  | 
| Sjoerd Mullender | d10d829 | 1992-09-11 15:19:27 +0000 | [diff] [blame] | 15 | typedef void *type_lock; | 
 | 16 | typedef void *type_sema; | 
 | 17 |  | 
 | 18 | #ifdef __cplusplus | 
 | 19 | extern "C" { | 
 | 20 | #endif | 
 | 21 |  | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 22 | void init_thread PROTO((void)); | 
 | 23 | int start_new_thread PROTO((void (*)(void *), void *)); | 
 | 24 | void exit_thread PROTO((void)); | 
 | 25 | void _exit_thread PROTO((void)); | 
| Guido van Rossum | b6775db | 1994-08-01 11:34:53 +0000 | [diff] [blame] | 26 | long get_thread_ident PROTO((void)); | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 27 |  | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 28 | type_lock allocate_lock PROTO((void)); | 
 | 29 | void free_lock PROTO((type_lock)); | 
 | 30 | int acquire_lock PROTO((type_lock, int)); | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 31 | #define WAIT_LOCK	1 | 
 | 32 | #define NOWAIT_LOCK	0 | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 33 | void release_lock PROTO((type_lock)); | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 34 |  | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 35 | type_sema allocate_sema PROTO((int)); | 
 | 36 | void free_sema PROTO((type_sema)); | 
 | 37 | void down_sema PROTO((type_sema)); | 
 | 38 | void up_sema PROTO((type_sema)); | 
| Guido van Rossum | f9f2e82 | 1992-08-17 08:59:08 +0000 | [diff] [blame] | 39 |  | 
| Guido van Rossum | b6775db | 1994-08-01 11:34:53 +0000 | [diff] [blame] | 40 | #ifndef NO_EXIT_PROG | 
| Sjoerd Mullender | 7030b1f | 1993-12-20 17:26:34 +0000 | [diff] [blame] | 41 | void exit_prog PROTO((int)); | 
 | 42 | void _exit_prog PROTO((int)); | 
| Guido van Rossum | b6775db | 1994-08-01 11:34:53 +0000 | [diff] [blame] | 43 | #endif | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 44 |  | 
| Sjoerd Mullender | d10d829 | 1992-09-11 15:19:27 +0000 | [diff] [blame] | 45 | #ifdef __cplusplus | 
 | 46 | } | 
 | 47 | #endif | 
 | 48 |  | 
| Guido van Rossum | 1984f1e | 1992-08-04 12:41:02 +0000 | [diff] [blame] | 49 | #endif |