From: "John M. Aldrich" Newsgroups: comp.os.msdos.djgpp Subject: Re: I don't want swapping Date: Tue, 02 Jun 1998 18:56:39 -0400 Organization: Two pounds of chaos and a pinch of salt. Lines: 37 Message-ID: <35748327.36E0@cs.com> References: <3 DOT 0 DOT 3 DOT 32 DOT 19980602183929 DOT 006ad4e4 AT ns DOT coba DOT net> NNTP-Posting-Host: ppp134.cs.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Daniel Delorme wrote: > > I've searched the djgpp mailing list archives and found interesting > stuff on disabling virtual memory and getting memory information from > the system (_go32_dpmi_get_free_memory_information) > > My problem is: I want a way to know when all the physical memory is > used up so I can compress the data I'm working on (random map generation) > and go on processing without having to hear the sweet music of swapping > > In DOS mode (using CSWDPMI), I can use _go32_d[..].available_physical_pages > The problem is with Win95 (how suprising) : available_physical_pages never > reaches zero even after the swapping starts. > > If you know an alternative solution to prevent swapping, I'd love to hear > about it ! You can force all allocated memory to be locked by using the _crt0_startup_flags variable (look it up in the libc reference). Basically, you include the following code in the main module of your program: #include int _crt0_startup_flags = _CRT0_FLAG_LOCK_MEMORY; When you do this, all allocated memory will be prevented from paging; thus, when you run out of unlocked memory, malloc() and company will fail. -- --------------------------------------------------------------------- | John M. Aldrich, aka Fighteer I | mailto:fighteer AT cs DOT com | | Proud owner of what might one | http://www.cs.com/fighteer/ | | day be a spectacular MUD... | ICQ UIN#: 7406319 | | Plan: To make Bill Gates suffer | HEAT User ID: Fighteer | ---------------------------------------------------------------------