Re: Kernel closes after nested function returns
- To: mathgroup at smc.vnet.net
- Subject: [mg74732] Re: Kernel closes after nested function returns
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Mon, 2 Apr 2007 07:01:06 -0400 (EDT)
- References: <eunqdv$7jj$1@smc.vnet.net>
Hi,
Mathematica copy the data quite often and I would expect, that you
run out of memory or the kernel need more memory than the operating
system allows. You may hinder the copy process by using a Block[] in
func A and use in func B the variable name of func A
funcA[listInput_]:=Block[{aVeryLargeList=listInput},
...
funcB[]
...
]
funcB[]:=Module[{someVariable},
...
aVeryLargeList*someVariable
...
]
eventual with the full context.
Or you may transfer the symbol with the HoldFirst attribute
or you may use a 64 bit system.
Regards
Jens
Lawrence Walker wrote:
> Hi,
>
> I've been experiencing a problem where the kernel and all of my mathlink
> programs quits. Upon debugging with Workbench, I saw that mathlink
> returns an error when returning from a called function.
>
> The scenario goes like this: I run a package containing definitions for
> function A and function B. When I run funcA during the notebook
> session, I pass a very large list to funcA. funcA then calls funcB and
> passes the large list to it. funcB returns its results to funcA. Next
> funcA finish performing all of its calculations. Finally, funcA
> prepares to return its results to the notebook session. And thats when
> the kernel quits with no warning.
>
> After further debugging, I found that everything works when passing
> smaller lists. So, I suspect a memory problem.
>
> I solved the problem by modifying funcA to not have to call funcB. Now
> I can work with very large lists.
>
> But this still doesn't solve a problem that could be related to
> Mathematica 5.2. Does anyone know how to fix this?
>
> Lawrence
>