[comp.lang.postscript] Removing ehandler.ps Without Turning Off Power

cramer@optilink.UUCP (Clayton Cramer) (08/02/89)

Does someone have some PostScript to restore the default error handler
after running ehandler.ps?  I can turn off the printer to do this,
but it's a shared printer, and it's a lot more convenient to restore
the state by sending another file.
-- 
Clayton E. Cramer {pyramid,pixar,tekbspa}!optilink!cramer
Deng Xiaoping: why every home needs a rifle.
----------------------------------------------------------------------------
Disclaimer?  You must be kidding!  No company would hold opinions like mine!

cplai@daisy.UUCP (Chung-Pang Lai) (08/03/89)

In article <1992@optilink.UUCP> cramer@optilink.UUCP (Clayton Cramer) writes:
]Does someone have some PostScript to restore the default error handler
]after running ehandler.ps?  

There is a switch in ehandler.ps that specify if it is used only once or
stay until power-cycle.  Look for the comment:

% Change or remove this section to use ehandler.ps on a job-by-job basis.


-- 
.signature under construction ...
{pyramid, osu-cis, uunet, killer}!daisy!cplai    C.P. Lai
cplai%daisy.UUCP@uunet.UU.NET   cplai%daisy@killer.DALLAS.TX.USA
Daisy Systems Corp, 700B Middlefield Road, Mtn View CA 94039.  (415)960-6961

hess@iuvax.cs.indiana.edu (Caleb Hess) (08/04/89)

In article <1992@optilink.UUCP> cramer@optilink.UUCP (Clayton Cramer) writes:
>Does someone have some PostScript to restore the default error handler
>after running ehandler.ps?  I can turn off the printer to do this,
>but it's a shared printer, and it's a lot more convenient to restore
>the state by sending another file.
>-- 
>Clayton E. Cramer {pyramid,pixar,tekbspa}!optilink!cramer
>Deng Xiaoping: why every home needs a rifle.
>----------------------------------------------------------------------------
>Disclaimer?  You must be kidding!  No company would hold opinions like mine!

Here is a way to completely reset your printer without power cycling.  We
run this periodically to ensure that the printer's VM is not accumulating
garbage (since PostScript doesn't do garbage collection).

%!
%  Executes the systemdict/quit operator (as opposed to the userdict/quit
%  operator, which is synonymous with stop or EOF) to reinitialize PostScript
%       (suggested by Guy Riddle in comp.lang.postscript, 8/4/88)       - hess

serverdict begin
0
exitserver
systemdict begin
quit

greid@adobe.com (Glenn Reid) (08/05/89)

In article <24271@iuvax.cs.indiana.edu> hess@iuvax.cs.indiana.edu (Caleb Hess) writes:
>In article <1992@optilink.UUCP> cramer@optilink.UUCP (Clayton Cramer) writes:
>Here is a way to completely reset your printer without power cycling.  We
>run this periodically to ensure that the printer's VM is not accumulating
>garbage (since PostScript doesn't do garbage collection).
>
>%!
>%  Executes the systemdict/quit operator (as opposed to the userdict/quit
>%  operator, which is synonymous with stop or EOF) to reinitialize PostScript
>%       (suggested by Guy Riddle in comp.lang.postscript, 8/4/88)       - hess
>
>serverdict begin
>0
>exitserver
>systemdict begin
>quit


This is unnecessary.  The save/restore mechanism is more foolproof
than any garbage collection algorithm.  We leave our printers going
for months at a time without power cycling or rebooting them, and
they don't "lose" even a single byte of VM.  The only way you will
lose VM is if somebody exits the server loop and defines something,
in which case the code you suggest is a reasonable way to get rid
of it.

I would at least suggest a modification to this program so that it
doesn't unnecessarily reboot the printer every however-often.  Use
"vmstatus" to determine how much free VM is left, and if it is less
than a prescribed amount, then reboot:

%!
vmstatus exch sub
100000		% your limit here
lt {
    serverdict begin 0 exitserver
    systemdict /quit get exec
}{ pop } ifelse

I haven't tested this, but it should work, I think.

As far as getting rid of just the error handler, you could, with
a little work, rewrite it so that you can download the code once,
then download another little patch to change the name "handleerror"
to point to the old code or the new code, whichever you want.  That
way the code would stay in the printer, but you could de-activate
it without rebooting the printer.

Glenn Reid
Adobe Systems