annotate src/sighandlers.h @ 2939:f2feebf0eb7d

[project @ 1997-05-06 16:36:34 by jwe]
author jwe
date Tue, 06 May 1997 16:36:35 +0000
parents 66ef74ee5d9f
children 5708b8bb4f06
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
1 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
2
2847
8b262e771614 [project @ 1997-03-27 16:18:26 by jwe]
jwe
parents: 2705
diff changeset
3 Copyright (C) 1996, 1997 John W. Eaton
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
4
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
6
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
10 later version.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
11
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
15 for more details.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
16
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
1315
611d403c7f3d [project @ 1995-06-25 19:56:32 by jwe]
jwe
parents: 1009
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
20
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
21 */
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
22
2939
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
23 /*
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
24
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
25 The signal blocking macros defined below were adapted from similar
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
26 functions from GNU Bash, the Bourne Again SHell, copyright (C) 1994
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
27 Free Software Foundation, Inc.
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
28
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
29 */
f2feebf0eb7d [project @ 1997-05-06 16:36:34 by jwe]
jwe
parents: 2926
diff changeset
30
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
31 // This file should always be included after config.h!
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
32
383
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 296
diff changeset
33 #if !defined (octave_sighandlers_h)
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 296
diff changeset
34 #define octave_sighandlers_h 1
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
35
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
36 #include <Array.h>
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
37
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
38 #include "syswait.h"
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
39
290
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
40 // Signal handler return type.
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
41 #ifndef RETSIGTYPE
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
42 #define RETSIGTYPE void
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
43 #endif
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
44 #ifndef BADSIG
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
45 #define BADSIG (RETSIGTYPE (*)(int))-1
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
46 #endif
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
47
2693
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
48 #define BLOCK_SIGNAL(sig, nvar, ovar) \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
49 do \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
50 { \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
51 sigemptyset (&nvar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
52 sigaddset (&nvar, sig); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
53 sigemptyset (&ovar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
54 sigprocmask (SIG_BLOCK, &nvar, &ovar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
55 } \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
56 while (0)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
57
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
58 #if defined (HAVE_POSIX_SIGNALS)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
59 #define BLOCK_CHILD(nvar, ovar) BLOCK_SIGNAL (SIGCHLD, nvar, ovar)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
60 #define UNBLOCK_CHILD(ovar) sigprocmask (SIG_SETMASK, &ovar, 0)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
61 #else
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
62 #define BLOCK_CHILD(nvar, ovar) ovar = sigblock (sigmask (SIGCHLD))
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
63 #define UNBLOCK_CHILD(ovar) sigsetmask (ovar)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
64 #endif
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
65
290
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
66 typedef RETSIGTYPE sig_handler (int);
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
67
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
68 // XXX FIXME XXX -- the data should probably be private...
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
69
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
70 struct
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
71 octave_interrupt_handler
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
72 {
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
73 #ifdef SIGINT
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
74 sig_handler *int_handler;
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
75 #endif
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
76
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
77 #ifdef SIGBREAK
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
78 sig_handler *brk_handler;
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
79 #endif
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
80 };
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
81
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
82 // Nonzero means we have already printed a message for this series of
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
83 // SIGPIPES. We assume that the writer will eventually give up.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
84 extern int pipe_handler_error_count;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
85
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
86 // Nonzero means we can be interrupted.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
87 extern int can_interrupt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
88
1443
cd6c9be7337c [project @ 1995-09-19 21:54:56 by jwe]
jwe
parents: 1315
diff changeset
89 extern sig_handler *octave_set_signal_handler (int, sig_handler *);
cd6c9be7337c [project @ 1995-09-19 21:54:56 by jwe]
jwe
parents: 1315
diff changeset
90
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
91 extern void install_signal_handlers (void);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
92
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
93 extern octave_interrupt_handler octave_catch_interrupts (void);
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
94
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
95 extern octave_interrupt_handler octave_ignore_interrupts (void);
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
96
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
97 extern octave_interrupt_handler
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
98 octave_set_interrupt_handler (const volatile octave_interrupt_handler&);
1651
e846e361a265 [project @ 1995-12-20 06:59:12 by jwe]
jwe
parents: 1445
diff changeset
99
2016
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
100 extern void octave_save_signal_mask (void);
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
101
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
102 extern void octave_restore_signal_mask (void);
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
103
2214
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
104 // extern void ignore_sigchld (void);
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
105
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
106 // This is taken directly from Emacs 19:
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
107
839
b8530da02bb7 [project @ 1994-10-19 21:44:00 by jwe]
jwe
parents: 834
diff changeset
108 #ifndef SYS_SIGLIST_DECLARED
b8530da02bb7 [project @ 1994-10-19 21:44:00 by jwe]
jwe
parents: 834
diff changeset
109 extern char *sys_siglist[];
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
110 #endif
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
111
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
112 // Maybe this should be in a separate file?
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
113
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
114 class
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
115 octave_child
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
116 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
117 public:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
118
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
119 typedef void (*dead_child_handler) (pid_t, int);
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
120
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
121 octave_child (pid_t id = -1, dead_child_handler f = 0)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
122 : pid (id), handler (f) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
123
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
124 octave_child (const octave_child& oc)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
125 : pid (oc.pid), handler (oc.handler) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
126
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
127 octave_child& operator = (const octave_child& oc)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
128 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
129 if (&oc != this)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
130 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
131 pid = oc.pid;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
132 handler = oc.handler;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
133 }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
134 return *this;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
135 }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
136
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
137 ~octave_child (void) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
138
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
139 // The process id of this child.
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
140 pid_t pid;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
141
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
142 // The function we call if this child dies.
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
143 dead_child_handler handler;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
144 };
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
145
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
146 class
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
147 octave_child_list
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
148 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
149 protected:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
150
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
151 octave_child_list (void) : list (0), curr_len (0) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
152
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
153 public:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
154
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
155 ~octave_child_list (void) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
156
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
157 static bool instance_ok (void);
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
158
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
159 static void insert (pid_t pid, octave_child::dead_child_handler f);
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
160
2214
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
161 static void remove (pid_t pid);
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
162
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
163 static int length (void);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
164
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
165 static octave_child& elem (int i);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
166
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
167 private:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
168
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
169 Array<octave_child> list;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
170
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
171 int curr_len;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
172
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
173 static octave_child_list *instance;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
174
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
175 void do_insert (pid_t pid, octave_child::dead_child_handler f);
2214
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
176
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
177 void do_remove (pid_t pid);
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
178
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
179 int do_length (void) const;
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
180
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
181 octave_child& do_elem (int i);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
182 };
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
183
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
185
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
186 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
187 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
188 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
189 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
190 */