annotate src/sighandlers.h @ 2926:66ef74ee5d9f

[project @ 1997-05-05 03:20:52 by jwe]
author jwe
date Mon, 05 May 1997 03:40:21 +0000
parents 8b262e771614
children f2feebf0eb7d
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
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
23 // This file should always be included after config.h!
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
24
383
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 296
diff changeset
25 #if !defined (octave_sighandlers_h)
0b52c68ec81f [project @ 1994-03-09 21:19:44 by jwe]
jwe
parents: 296
diff changeset
26 #define octave_sighandlers_h 1
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
27
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
28 #include <Array.h>
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
29
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
30 #include "syswait.h"
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
31
290
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
32 // Signal handler return type.
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
33 #ifndef RETSIGTYPE
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
34 #define RETSIGTYPE void
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
35 #endif
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
36 #ifndef BADSIG
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
37 #define BADSIG (RETSIGTYPE (*)(int))-1
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
38 #endif
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
39
2693
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
40 // The following signal blocking stuff is stolen from bash:
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
41
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
42 #define BLOCK_SIGNAL(sig, nvar, ovar) \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
43 do \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
44 { \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
45 sigemptyset (&nvar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
46 sigaddset (&nvar, sig); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
47 sigemptyset (&ovar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
48 sigprocmask (SIG_BLOCK, &nvar, &ovar); \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
49 } \
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
50 while (0)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
51
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
52 #if defined (HAVE_POSIX_SIGNALS)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
53 #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
54 #define UNBLOCK_CHILD(ovar) sigprocmask (SIG_SETMASK, &ovar, 0)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
55 #else
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
56 #define BLOCK_CHILD(nvar, ovar) ovar = sigblock (sigmask (SIGCHLD))
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
57 #define UNBLOCK_CHILD(ovar) sigsetmask (ovar)
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
58 #endif
f4d0604cbcc4 [project @ 1997-02-18 15:25:21 by jwe]
jwe
parents: 2554
diff changeset
59
290
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
60 typedef RETSIGTYPE sig_handler (int);
5325afdb0ef5 [project @ 1994-01-13 19:21:40 by jwe]
jwe
parents: 240
diff changeset
61
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
62 // 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
63
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
64 struct
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
65 octave_interrupt_handler
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
66 {
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
67 #ifdef SIGINT
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
68 sig_handler *int_handler;
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
69 #endif
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
70
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
71 #ifdef SIGBREAK
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
72 sig_handler *brk_handler;
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
73 #endif
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
74 };
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
75
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
76 // 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
77 // SIGPIPES. We assume that the writer will eventually give up.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
78 extern int pipe_handler_error_count;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
79
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
80 // Nonzero means we can be interrupted.
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
81 extern int can_interrupt;
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
82
1443
cd6c9be7337c [project @ 1995-09-19 21:54:56 by jwe]
jwe
parents: 1315
diff changeset
83 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
84
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
85 extern void install_signal_handlers (void);
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
86
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
87 extern octave_interrupt_handler octave_catch_interrupts (void);
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
88
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
89 extern octave_interrupt_handler octave_ignore_interrupts (void);
2554
f7e3d23f0a8f [project @ 1996-11-21 01:41:57 by jwe]
jwe
parents: 2469
diff changeset
90
2705
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
91 extern octave_interrupt_handler
18395aaeafb7 [project @ 1997-02-20 04:56:43 by jwe]
jwe
parents: 2693
diff changeset
92 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
93
2016
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
94 extern void octave_save_signal_mask (void);
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
95
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
96 extern void octave_restore_signal_mask (void);
6f3428b0d2c7 [project @ 1996-03-22 09:48:38 by jwe]
jwe
parents: 1996
diff changeset
97
2214
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
98 // extern void ignore_sigchld (void);
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
99
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
100 // This is taken directly from Emacs 19:
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
101
839
b8530da02bb7 [project @ 1994-10-19 21:44:00 by jwe]
jwe
parents: 834
diff changeset
102 #ifndef SYS_SIGLIST_DECLARED
b8530da02bb7 [project @ 1994-10-19 21:44:00 by jwe]
jwe
parents: 834
diff changeset
103 extern char *sys_siglist[];
834
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
104 #endif
44ce29d8cb7b [project @ 1994-10-19 18:17:44 by jwe]
jwe
parents: 383
diff changeset
105
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
106 // Maybe this should be in a separate file?
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
107
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
108 class
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
109 octave_child
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
110 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
111 public:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
112
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
113 typedef void (*dead_child_handler) (pid_t, int);
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
114
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
115 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
116 : pid (id), handler (f) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
117
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
118 octave_child (const octave_child& oc)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
119 : pid (oc.pid), handler (oc.handler) { }
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& operator = (const octave_child& oc)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
122 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
123 if (&oc != this)
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
124 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
125 pid = oc.pid;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
126 handler = oc.handler;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
127 }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
128 return *this;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
129 }
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 ~octave_child (void) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
132
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
133 // The process id of this child.
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
134 pid_t pid;
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 // The function we call if this child dies.
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
137 dead_child_handler handler;
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
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
140 class
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
141 octave_child_list
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
142 {
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
143 protected:
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 octave_child_list (void) : list (0), curr_len (0) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
146
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
147 public:
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 ~octave_child_list (void) { }
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
150
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
151 static bool instance_ok (void);
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
152
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
153 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
154
2214
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
155 static void remove (pid_t pid);
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
156
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
157 static int length (void);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
158
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
159 static octave_child& elem (int i);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
160
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
161 private:
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
162
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
163 Array<octave_child> list;
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
164
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
165 int curr_len;
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 static octave_child_list *instance;
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 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
170
b5c7309168f3 [project @ 1996-05-16 15:48:22 by jwe]
jwe
parents: 2209
diff changeset
171 void do_remove (pid_t pid);
2926
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
172
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
173 int do_length (void) const;
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
174
66ef74ee5d9f [project @ 1997-05-05 03:20:52 by jwe]
jwe
parents: 2847
diff changeset
175 octave_child& do_elem (int i);
2209
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
176 };
859030f15706 [project @ 1996-05-15 11:46:43 by jwe]
jwe
parents: 2016
diff changeset
177
1
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
178 #endif
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
179
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
180 /*
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
181 ;;; Local Variables: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
182 ;;; mode: C++ ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
183 ;;; End: ***
78fd87e624cb [project @ 1993-08-08 01:13:40 by jwe]
jwe
parents:
diff changeset
184 */