| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | I couldn`t get xalloc ex |
Hi Denis!
[..]
DT> Rather than memman=noswap, try memman=commit.. It will preallocate
DT> swapspace at the time of your allocmem, and if there is not enough
DT> will give the above indication.
I rather think you get the harderr daemon message popped up. Or your process
will be terminated automatically if you specified AUTOFAIL. I wouldn't expect
the apps to receive a ERROR_NOT_ENOUGH_MEMORY in this case either.
[..]
DT> Not really. You are getting page tables mixed up with desciptor
DT> tables. Each process has it's own LDT.
Yes, you're right. I noticed this after I had the mail already sent. However
this transfers the effect only to the application page table. By running
out of table entries, this is the only way to have the kernel return
ERROR_NOT_ENOUGH_MEMORY besides setting MEMMAN to NOSWAP.
Even parts of the system interna do not handle a out-of-memory situation properly.
Anything on the kernel side seems to be OK for me. But PM and WPS plus apps
couse very fast a system hang when the working set exceeds the physical amount
of memory in the noswap-configuration.
Nevertheless NT crashes on such a situation as well.
[..]
DT> I suspect what you are thinking of is the situation when the shared
DT> arena grows down to the highest address that the application with the
DT> largest private arena has grown to. If this condition is reached, then
DT> only this app will fail a private alloc, but ALL processes will fail a
DT> shared alloc. This is usually caused by a memory leak. In the private
DT> address space of some app, or an app that is allocating shared
DT> addresses.
Hmm, if I recall correctly, most Warp kernels allocate tiled memory in every case.
Therefore each DosAllocMem occupies an entry in the descriptor table for a 64k
segment at least (16-bit alias selectors). The Warp Server kernels (maybe post-GA)
are said to lift the 512MB limit. So I think DosAllocMem will NOT always allocate
tiled memory on those kernels.
#define INCL_DOS
#include
#include
main()
{
int i;
APIRET rc;
char *p;
for (i=0;
i<10000;
i++)
{
rc = DosAllocMem(&p,
4096,
PAG_READ | PAG_WRITE | PAG_COMMIT);
printf("alloc %u returned #%u.\n",i,rc);
}
}
__
|_)
cu/2 |atrick
[Team OS/2]
--- FleetStreet 1.18+
* Origin: OS/2 Bodensee ! (2:246/2315.18)SEEN-BY: 50/99 270/101 620/243 625/160 711/401 409 410 413 430 808 809 934 SEEN-BY: 711/955 712/407 515 624 628 713/317 800/1 @PATH: 246/2315 2300 2340 10 240/5202 5010 2433/225 270/101 712/515 711/808 @PATH: 711/934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.