Re: TArrayI, Function XXX() busy.

Masaharu Goto (gotom@hpyiddq.jpn.hp.com)
Mon, 19 May 97 13:21:32 JST


Hello,

Concerned about the busy function,

You can load and unload arbitrary C/C++ source code at run-time on CINT.
But you can not unload source files with busy functions. Busy functions
are functions which are running at that time. I must protect this to
prevent fatal execution error.

What is happening in monb.C case is that the error occurs during monb()
execution and 'Root >' prompt appears within monb(). This means function
monb() is busy. When you try to re-execute monb.C, it first tries to
unload monb.C and re-load it again. Because monb() is busy, you can't
unload it and causes the error you've seen.

.x problem is inevitable but it may be possible to fix this for .reset.
Let me take a closer look.

Masaharu Goto

> Otto Schaile wrote:
> >
> > Hi roots,
> > - TArrayI has no constructor with initialisation of the values (as TArrayF
> > e.g.). Is this an just an omission or intended?
> >
>
> Thanks for reporting this inconsistency. I have implemented
> this contructor into all TArray classes in the dev version.
>
> > - After a bad error in a macro one might get:
> >
> > ----------------------------------------------------------
> > *** Break *** segmentation violation
> >
> > *** Break *** keyboard interrupt
> > Root > .x monb.C("etphp02")
> > Function monb() busy. loaded after "monb.C"
> > Error: G__unloadfile() Can not unload "monb.C", file busy FILE:monb.C
> > LINE:60
> > Warning: File "monb.C" already loaded
> > root [2] .reset
> > Function monb() busy. loaded after "monb.C"
> > !!! Sorry, can not reset interpreter !!!
> > ----------------------------------------------------------
> > Is there a way out of this other then leaving root?
>
> Unfortunatly, we have already seen this problem.
> Fons & Masa could you investigate ?
>
> Rene Brun