[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "resource temporarily unavailable" errors on windows 7

From: Alex Harsanyi
Subject: Re: "resource temporarily unavailable" errors on windows 7
Date: Tue, 13 Mar 2012 08:18:10 +0800

2012/3/13 Eli Zaretskii <address@hidden>:
>> Date: Mon, 12 Mar 2012 12:56:13 +0800
>> From: Alex Harsanyi <address@hidden>
>> Should this version of allocate_heap() be used on a Windows 7, 32 bit
>> platform?
> I don't see why not; we need more specific information to make a
> decision.
> This function is responsible for reserving memory for the Emacs
> process at startup.
> The question is, why reserving the memory the way allocate_heap does
> causes trouble for you.  What that function does is start by asking
> for 2GB or reserved memory, and if that fails, asks for less and less
> in steps of 8MB.  Can you step through that function with a debugger
> and see how much memory it eventually allocates?

The new alocate_heap function allocates 1'811'939'328 bytes of memory
(approx 1.8Gb).  If I run emacs.exe in Windows XP compatibility mode,
the function allocates only 1'468'006'400 (1.4Gb), in this case I also
get the following warning in GDB:

   warning: FTH: (6936): *** Fault tolerant heap shim applied to
current process. This is usually due to previous crashes. ***

My understanding is that in a 32bit windows process, only 2Gb of
address space is usable by the application.  Could this mean that
after alocate_heap() is called, the entire address space of the emacs
process is allocated and CreateProcess() cannot allocate memory for
its internal needs?

Since only 1.4 Gb are allocated in Windows XP compatibility mode, this
would leave 0.4 Gb free to be used by CreateProcess(), so subprocesses
can be started without problems.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]