infinite-20230822.p
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. |