&*^%^$#%$*& USER!

Brian K. White brian at aljex.com
Thu Apr 1 18:27:13 PST 2004


Kenneth Brody wrote:
> "Brian K. White" wrote:
> [...]
>>      then: user cgc = cgc
>>      then: cgc = getenv("COMPANY"){","{scanimg_dtyp{","{scanimg_dnum
>>      then: system "winstart
>>      http://"{getenv("SRVIP"){"/cgi-bin/showthm?"{cgc then: close
>> cgc ; return
> [...]
>> two possible work-arounds that I can see are:
>> 1) track whether user has ever been opened in a global variable and
>> then check the variable at the beginning of the gosub and never
>> close the user command.
>
> Why are you closing it in the first place?  There is no need, since
> you have properly written the script to loop.
>
>> 2) don't track whether user has already been opened, just always
>> open it once in @once and never close it.
>
> What do you mean "open it once in @once"?

What I ended up doing, which seems to be working OK.
Don't know until tomorrow how reliable it'll be.

I changed this:

label:  if:
then: usr cgc = cgc
then: cgc = something
then: something = cgc
then: close cgc
then: return

to this:

label:  if:
then: cgc = something
then: something = cgc
then: return
@once: if:
then: user cgc = cgc
then: return

I don't see any more defunct processes, and repeated calls to the gosub from
an @key
have all worked as far as I've tried.
But it results in every session in this file spawning two constant processes
(clerk + cgc) the whole time they are in clerk where they used to only spawn
one (clerk itself). On a small system it's no biggie. On a big system a 100%
increase in active processes could be a problem.

Considering how this is used, maybe it's not so bad having it "always on"
like this _in this case_.But I really want the user process to be transient
and fleeting. not a parmanent companion to every active input process in all
the most-used files.

But then there is another similar issue that I don't think I can solve this
easily.
Jerry Rains' user command that uses netcat is not only called many times in
one clerk session, but it is in a call table not in the input process
itself. I don't know how I could avoid running the user command at least
once for each invocation of the call table.

Brian K. White  --  brian at aljex.com  --  http://www.aljex.com/bkw/
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx  Linux SCO  Prosper/FACTS AutoCAD  #callahans Satriani



More information about the Filepro-list mailing list