mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-05 12:38:29 +02:00
48 lines
833 B
ObjectPascal
48 lines
833 B
ObjectPascal
{%skiptarget=$nothread }
|
|
|
|
{$mode objfpc}
|
|
|
|
{$ifdef CPUWASM32}
|
|
{ This test runs out of memory, when using the default WebAssembly shared
|
|
memory limit of 256 MiB, so we increase it to 512 MiB }
|
|
{$M 1048576,536870912,536870912}
|
|
{$endif}
|
|
|
|
uses
|
|
{$ifdef unix}
|
|
cthreads,
|
|
{$endif}
|
|
sysutils,
|
|
classes;
|
|
|
|
type
|
|
tmythread = class(tthread)
|
|
fs: ansistring;
|
|
constructor create(const s: ansistring);
|
|
procedure execute; override;
|
|
end;
|
|
|
|
constructor tmythread.create(const s: ansistring);
|
|
begin
|
|
fs:=s+'a';
|
|
freeonterminate:=true;
|
|
inherited create(true);
|
|
end;
|
|
|
|
procedure tmythread.execute;
|
|
begin
|
|
sleep(60);
|
|
// writeln('done');
|
|
end;
|
|
|
|
var
|
|
a: array[1..100] of tmythread;
|
|
i: longint;
|
|
begin
|
|
for i:=low(a) to high(a) do
|
|
a[i]:=tmythread.create('b');
|
|
for i:=low(a) to high(a) do
|
|
a[i].resume;
|
|
sleep(60);
|
|
end.
|