|Ramón Casero Cañas on Sat, 18 Jan 2003 20:49:54 +0100 (MET)|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Re: how to free pari's memory|
Karim BELABAS wrote: >On Thu, 16 Jan 2003, Ramón Casero Cañas wrote: >Anyway, if you want to use PARI, then remove it completely [ not a good idea >if you do this more than once : it involves a very significant overhead ], >you have to do it by hand: > > void freeall(void); > void pari_sig_init(void (*f)(int)); > > freeall(); > if (INIT_SIG) pari_sig_init(SIG_DFL); Um, I don't know whether I have undestood you completely. Do you mean that I have to add the to first declarations at the beginning of the file where the function with PARI is used, and then just copy & paste the other two before the return of the function? So freeall() and pari_sig_init() are both compiled in the library, but there's no declaration included from "pari.h", aren't they? >None of the above is documented (it's the first time the problem of unloading >the library is raised...) Man, am I a pioneer! :-) > >>But I have noticed that if I press CTRL-C while the program is >>running (after returning from the function), I get a >> >> *** user interrupt. >> *** Error in the PARI system. End of program. >> >>Is there a way to delete the stack. I suposse this is not a garbage >>collection. > > >Not related to stack. PARI traps a number of signals for its own use, and you >want to restore default behaviour. Either use SIG_DFL as above, or >re-initialize your own signal handler [ no way to recover the one PARI >replaced using PARI functions, I'm afraid ] I'm with Bill in that it would be nice to be able to use the PARI system as a secondary system, like most libraries allow. But it's just an idea. Thanks, Ramón. -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen!