* dcrt0.cc (__api_fatal): Simplify to just use strace mechamisms.
(do_exit): Move minimal_printf... * pinfo.cc (pinfo::exit): ...into here. * strace.cc (strace::vprntf): Guarantee output to the console when system_printf/api_fatal. * heap.cc (heap_init): Wait a second before issuing an error when ERROR_INVALID_ADDRESS since this is probably due to a CTRL-C handler sneaking in, using the memory that we want to use for the heap, and, eventually exiting.
This commit is contained in:
@ -76,10 +76,14 @@ heap_init ()
|
||||
break;
|
||||
}
|
||||
if (!p)
|
||||
api_fatal ("couldn't allocate heap, %E, base %p, top %p, "
|
||||
"reserve_size %d, allocsize %d, page_const %d",
|
||||
cygheap->user_heap.base, cygheap->user_heap.top,
|
||||
reserve_size, allocsize, page_const);
|
||||
{
|
||||
if (GetLastError () == ERROR_INVALID_ADDRESS)
|
||||
Sleep (2000);
|
||||
api_fatal ("couldn't allocate heap, %E, base %p, top %p, "
|
||||
"reserve_size %d, allocsize %d, page_const %d",
|
||||
cygheap->user_heap.base, cygheap->user_heap.top,
|
||||
reserve_size, allocsize, page_const);
|
||||
}
|
||||
if (p != cygheap->user_heap.base)
|
||||
api_fatal ("heap allocated at wrong address %p (mapped) != %p (expected)", p, cygheap->user_heap.base);
|
||||
if (!VirtualAlloc (cygheap->user_heap.base, allocsize, MEM_COMMIT, PAGE_READWRITE))
|
||||
|
Reference in New Issue
Block a user