Consultor Eletrônico



Kbase 1628: Hanging terminal bug versions 5.2E - 5.2I desc + fix
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/05/1998
Hanging terminal bug versions 5.2E - 5.2I desc + fix

900802-hjb01
/* This program illustrates a bug that HANGS a terminal
Specific to version 5.2D - 5.2I of Progress on all platforms*/

def var a as int.
def var b as int.
form a with frame x.
form b with frame y.
update a with frame x editing:
readkey.
if keyfunction(lastkey) = "Insert-mode" then do:
/*HIDE ALL no-pause.*/
display a with frame x.
display b with frame y.
next.
end.
apply lastkey.
end.

/* To reproduce the hanging terminal problem, uncomment the
HIDE ALL statement. Run the program and when prompted,
hit the <F3> INSERT-MODE key three times.
On the third attempt, the terminal will become locked.
Only stopping and restarting the terminal will clear it.
workarounds to the problem include:

To fix this example:

1. Move the HIDE ALL after the display statements.

or

2. HIDE frame x before the editing block.

or

3. Remove the second display statement.


In general:


1. DO NOT use HIDE ALL in an editiing frame.


2. Replace HIDE ALL with hide frame frame-name (works
sometimes).


3. If multiple frames are used, a reference to the
frame(s) before the editing block
(i.e. DISPLAY with frame frame-name) also helps.


The exact problem lies in the Progress executable code that does
an explicit HIDE within an editing block. Under certain
circumstances it will go into an infinite loop.
The problem is fixed in releases after
5.2J.*/

Progress Software Technical Support Note # 1628