t_id
1420
t_adddate
2004/12/27
t_result
0
t_knownrunerror
0
tr_id | run | tr_ok | tr_skip | tr_result |
---|---|---|---|---|
-787493111 | 733245 | False | False | Failed to run |
Record count: 1
thread 2 var is @$0000000000447320 An unhandled exception occurred at $0000015C46080B60: EAccessViolation: Access violation $0000015C46080B60 $000001EFC9027E2C $000001EFC9002986 Program /boot/home/pas/gitlab-fpc-source/tests/output/x86_64-haiku/webtbs/chunk000020015webtbs/tw3467 exited with error 217 whereas only error 0 was expected
{ Source provided for Free Pascal Bug Report 3467 } { Submitted by "Micha Nelissen" on 2004-12-24 } { e-mail: micha@neli.hopto.org } program threadvartest; {$mode objfpc} {$H+} uses erroru, sysutils, classes {$ifdef unix} , cthreads {$endif} ; type tthread1 = class(tthread) public p : pointer; procedure execute; override; end; tthread2 = class(tthread) public p : pointer; procedure execute; override; end; threadvar athreadvar: integer; procedure tthread1.execute; var i: integer; begin writeln('thread 1 var is @', ptrint(@athreadvar)); athreadvar := 1; p:=@athreadvar; Sleep(2000); for i := 0 to 100000 do if athreadvar <> 1 then begin writeln(athreadvar); error; break; end; end; procedure tthread2.execute; var i: integer; begin writeln('thread 2 var is @', ptrint(@athreadvar)); athreadvar := 9; p:=@athreadvar; Sleep(2000); for i := 0 to 100000 do if athreadvar <> 9 then begin writeln(' ', athreadvar); error; break; end; end; var thread1: tthread1; thread2: tthread2; begin thread1 := tthread1.create(false); thread2 := tthread2.create(false); thread1.waitfor; thread2.waitfor; if thread1.p=thread2.p then error; end.