Project

General

Profile

infinite-20230822.p

Dănuț Filimon, 08/22/2023 04:06 AM

Download (956 Bytes)

 
1
DEFINE TEMP-TABLE tt02 FIELD f1 AS INTEGER INDEX idx1 f1.
2
DEFINE BUFFER buf02 FOR tt02.
3
DEFINE VARIABLE iIter AS INTEGER NO-UNDO.
4
DEFINE VARIABLE iLoopCounter AS INTEGER NO-UNDO.
5
DEFINE VARIABLE iOldValue AS INTEGER NO-UNDO.
6

    
7
DEFINE VARIABLE destination AS CHARACTER INITIAL "infinite-loop.txt" NO-UNDO.
8
OUTPUT TO VALUE(destination) APPEND.
9

    
10
DO TRANSACTION:
11
    DO iIter = 1 TO 6:
12
        CREATE tt02. tt02.f1 = iIter.
13
    END.
14
END.
15

    
16
iLoopCounter = 0.
17
DO ON ERROR UNDO:
18
    FOR EACH tt02.
19
        iLoopCounter = iLoopCounter + 1.
20
        MESSAGE "tt:" RECID(tt02) tt02.f1.
21
        iOldValue = tt02.f1.
22
        DELETE tt02.
23
        CREATE buf02.
24
        buf02.f1 = iOldValue.
25
        MESSAGE "buf:" RECID(buf02) buf02.f1.
26
        IF iLoopCounter = 2500 THEN DO:
27
            MESSAGE "Too many iterations -> infinite loop.".
28
            LEAVE.
29
        END.
30
    END.
31
END.
32

    
33
FOR EACH tt02.
34
    DELETE tt02.
35
END.
36

    
37
OUTPUT CLOSE.