| version 1.27, 2002/05/27 20:04:20 |
version 1.28, 2002/05/29 15:12:55 |
|
|
| * ep - extended pipelining |
* ep - extended pipelining |
| * coding start date: 11.11.2000 |
* coding start date: 11.11.2000 |
| * authors: Ondrej Jombik |
* authors: Ondrej Jombik |
| * Lubomir Host |
* Lubomir Host |
| * Martin Karas |
* Martin Karas |
| * Copyright (c) 2000-2002 Platon software development group |
* Copyright (c) 2000-2002 Platon software development group |
| * license: GNU General Public License |
* license: GNU General Public License |
| */ |
*/ |
| |
|
| |
/* Notes: |
| |
|
| |
* Now signal handler for every signal is installed. If SIG_CHLD detected, gloal |
| |
variable sig_chld is set. This change is printed out in main() in debug mode. |
| |
No other usage of sig_chld variable is currently used. |
| |
|
| |
* When write() syscall fails (that means returning -1 or 0), particular |
| |
proclinks to failed fd are removed and fd is closed. |
| |
|
| |
*/ |
| |
|
| #ifdef HAVE_CONFIG_H |
#ifdef HAVE_CONFIG_H |
| # include "config.h" |
# include "config.h" |
| #endif |
#endif |
|
|
| #if HAVE_SYS_WAIT_H |
#if HAVE_SYS_WAIT_H |
| # include <sys/wait.h> |
# include <sys/wait.h> |
| #endif |
#endif |
| |
|
| #ifndef WEXITSTATUS |
#ifndef WEXITSTATUS |
| # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) |
# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) |
| #endif |
#endif |
| Line 221 main(argc, argv) |
|
| Line 231 main(argc, argv) |
|
| /* |
/* |
| * Instaling signal handler. |
* Instaling signal handler. |
| */ |
*/ |
| /* sigserv_init(ptbl); */ |
sigserv_init(ptbl); |
| |
|
| #if DEBUG |
#if DEBUG |
| /* |
/* |
| Line 263 main(argc, argv) |
|
| Line 273 main(argc, argv) |
|
| tv.tv_usec = 1000; |
tv.tv_usec = 1000; |
| } |
} |
| |
|
| |
#if DEBUG |
| |
if (sig_chld) { |
| |
msg_debug_print("main(): SIG_CHLD detected\n"); |
| |
sig_chld = 0; |
| |
} |
| |
#endif |
| |
|
| ret = select(FD_SETSIZE, &rfds, &wfds, &efds, pid == 1 ? &tv : NULL); |
ret = select(FD_SETSIZE, &rfds, &wfds, &efds, pid == 1 ? &tv : NULL); |
| |
|
| if (ret < 0) { |
if (ret < 0) { |
| Line 277 main(argc, argv) |
|
| Line 294 main(argc, argv) |
|
| |
|
| sleep(1); |
sleep(1); |
| } |
} |
| |
#if DEBUG |
| |
/*if (FD_ISSET(0, &rfds) && getchar() == 12) |
| |
proctable_print(ptbl);*/ |
| |
#endif |
| #if MENU |
#if MENU |
| if (FD_ISSET(0, &rfds)) { |
if (FD_ISSET(0, &rfds)) { |
| int c; |
int c; |