ray@GIBBS.PHYSICS.PURDUE.EDU (Ray Moody) (06/14/89)
Bash prints its prompts to stderr. Stderr is unbuffered. Thus, bash makes one (expensive) write () system call for each character it prints. This eats our poor VAX 11/750 alive. Ray ------------------------------------------------------------------------------- RCS file: RCS/shell.c,v retrieving revision 0.99.1.2 diff -c -r0.99.1.2 shell.c *** /tmp/,RCSt1023214 Wed Jun 14 00:54:32 1989 --- shell.c Wed Jun 14 00:54:01 1989 *************** *** 188,193 if (shell_initialized) shell_reinitialize (); /* Here's a hack. If the name of this shell is "sh", then don't do any startup files; just try to be more like /bin/sh. */ { --- 188,198 ----- if (shell_initialized) shell_reinitialize (); + /* Added Wed Jun 14 00:53:21 EST 1989 by Ray Moody */ + /* We call setlinebuf () so that the readline package does not use + one (expensive) write () system call for each character it prints. */ + setlinebuf(stderr); + /* Here's a hack. If the name of this shell is "sh", then don't do any startup files; just try to be more like /bin/sh. */ {
james@bigtex.cactus.org (James Van Artsdalen) (06/15/89)
> Date: Wed, 14 Jun 89 00:59:41 EST > From: ray@gibbs.physics.purdue.edu (Ray Moody) > + /* Added Wed Jun 14 00:53:21 EST 1989 by Ray Moody */ > + /* We call setlinebuf () so that the readline package does not use > + one (expensive) write () system call for each character it prints. */ > + setlinebuf(stderr); This needs to be conditionalized on BSD or something. The system V method is to call setvbuf(stderr, buf, _IOLBF, sizeof buf). We get to supply the buffer. I've no idea who releases that buffer, but I guess we needn't worry about it. --- James R. Van Artsdalen james@bigtex.cactus.org "Live Free or Die" Dell Computer Co 9505 Arboretum Blvd Austin TX 78759 512-338-8789