[fpc-pascal] Problem with threads and cwstrings

Alexander Bauer alex at familie-bauer.info
Wed Jun 18 07:50:08 CEST 2008


Hi,

i have a problem when i use cwstrings together with threads on linux.

I made a simple program which create threads in an endless loop.
Every thread only does a sleep(1) and then finish.

Without 'cwstrings' everything works fine.
But when i include 'cwstrings' the program eats more and more memory.

What is the problem ?

FPC 2.2.1 (I also tested with FPC 2.3.1) with Ubuntu 8.04

Alex

----------------------------------------------------------------------------------
threaddemo.lpr
----------------------------------------------------------------------------------
program threaddemo;

{$mode objfpc}{$H+}

uses
  cthreads,
  cwstring,
  SysUtils,
  mythread;

var
  i: integer;
  bTerm: boolean;
  Thread: TmyThread;

begin
  i := 0;
  bTerm := false;

  while not bTerm do
  begin
    Thread := TmyThread.create(true);
    Thread.Resume;
    Inc(i);
    Sleep(1);
    WriteLn('Thread #' + IntToStr(i));
  end;

  Halt(0);
end.

----------------------------------------------------------------------------------
mythread.pas
----------------------------------------------------------------------------------
unit mythread;

interface

uses
  Classes, SysUtils;

type
  TmyThread = class(TThread)
  private
  public
    Constructor Create(CreateSuspended : boolean);
    procedure Execute; override;
  end;

implementation

{ TmyThread }

Constructor TmyThread.Create(CreateSuspended : boolean);
begin
  inherited create(CreateSuspended);
  FreeOnTerminate:=true;
end;

procedure TmyThread.Execute;
begin
  sleep(1);
end;

end.







More information about the fpc-pascal mailing list