delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/03/01/23:07:32

From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: rhide compile..
Date: Wed, 1 Mar 2000 12:14:14 +0200
Organization: NetVision Israel
Lines: 50
Message-ID: <Pine.SUN.3.91.1000301121353.12637K-100000@is>
References: <Pine DOT LNX DOT 4 DOT 10 DOT 10002290538530 DOT 1008-100000 AT darkstar DOT grendel DOT net> <Pine DOT SUN DOT 3 DOT 91 DOT 1000229111340 DOT 22619O AT is> <nv5pbss5ooi3ub9td9e1ckjr0g7v6krhgl AT 4ax DOT com>
NNTP-Posting-Host: is.elta.co.il
Mime-Version: 1.0
X-Trace: news.netvision.net.il 951905822 7641 199.203.121.2 (1 Mar 2000 10:17:02 GMT)
X-Complaints-To: abuse AT netvision DOT net DOT il
NNTP-Posting-Date: 1 Mar 2000 10:17:02 GMT
X-Sender: eliz AT is
In-Reply-To: <nv5pbss5ooi3ub9td9e1ckjr0g7v6krhgl@4ax.com>
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com
Errors-To: dj-admin AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On Wed, 1 Mar 2000, Damian Yerrick wrote:

> >SmartDrv flushes its buffers when a program exits
> 
> It flushes its write caches when a program exits _to command.com_.

No, it hooks function 4Ch of Int 21h and writes the cached data when a
program exits, even if it doesn't exit to COMMAND.COM.

> Even this can be disabled; see the Smartdrv docs.

I explained in my other message that the only thing you can disable is
the delay in program's exit until the cache is flushed, but you cannot
prevent Smartdrv from writing cached data when the program exits.

> >And because SmartDrv flushes buffers on program exit, a RAM disk is
> >better with pipes as well.
> 
> See above.

See above.

> >The problem is that with SmartDrv, you don't have the same kind of
> >control on what is cached and what's not, it is entirely up to
> >SmartDrv.
> 
> And Smartdrv is Smarter than you.

Most of the time, but not always.  For example, it has no way of
knowing (and I have no way of telling it) that I want a certain group
of files to be kept in the cache permanently.  This would be the
equivalent of copying the compiler, the assembler, the linker, etc. to
a RAM disk.

> >For example, if some program calls the `sync' function, SmartDrv
> >flushes and empties all of its buffers, and forgets about any gcc.exe
> >it was caching.
> 
> Or does it only commit its write cache?

No, it actually forgets everything about cached data.  The system call
used by the `sync' library function causes a kind of reinitialization
of the entire cache.

> If you have Windows 9x installed, long filenames can be an issue.

If you use Microsoft's RAMDRIVE.SYS, yes.  But you can get any of the
several alternatives from SimTel, and even with RAMDRIVE, the problems
begin only if you go past 8MB.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019