AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Speicherleck in TIdSNTP??
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherleck in TIdSNTP??

Ein Thema von HeikoAdams · begonnen am 25. Aug 2008 · letzter Beitrag vom 25. Aug 2008
Antwort Antwort
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#1

Speicherleck in TIdSNTP??

  Alt 25. Aug 2008, 14:50
Hallo,
laut FastMM bleiben nach dem Aufruf der folgenden Prozedur 1 TIdThreadSaveInteger und 2 TIdCriticalSection im Speicher übrig:
Delphi-Quellcode:
procedure LoginSpeichern(DataSet: TAdoDataSet; UserId: Integer; Pause: Double;
  PauseVon, PauseBis: TTime; const SyncSysTime: Boolean = False);
var
  Day, Month, Year: Word;
  TimeServer: TIdSNTP;
  Jetzt: TDateTime;
  ServerID: Integer;
  Fehler: Boolean;
begin
  Jetzt := Now;
  Fehler := False;

  Randomize();
  ServerID := Random(High(ServerPool) - 1);

  TimeServer := TIdSNTP.Create(nil);
  with TimeServer do
  begin
    ReceiveTimeout := 1000;
    try
      try
        Host := ServerPool[ServerID];
        Connect;
        //repeat until Connected;
        Jetzt := DateTime;
        if SyncSysTime then
          try
            if not SyncTime then
              MessageBox(0, AtomicTime02, MsgError, MB_ICONWARNING or MB_OK or
                MB_APPLMODAL);
          except
              MessageBox(0, AtomicTime03, MsgError, MB_ICONWARNING or MB_OK or
                MB_APPLMODAL);
          end;
      except
        Fehler := True;
      end;
    finally
      //Disconnect;
      //Free;
      Destroy;
    end;
  end;

  if Fehler then
  begin
    Jetzt := Now;
    MessageBox(0, AtomicTime01, MsgError, MB_ICONWARNING or MB_OK or
      MB_APPLMODAL);
  end;

  Year := 0;
  Month := 0;
  Day := 0;
  DecodeDate(Jetzt, Year, Month, Day);

  with DataSet do
  begin
    Close;
    with Parameters do
    begin
      ParamValues['pUser'] := UserID;
      ParamValues['pTag'] := Day;
      ParamValues['pMon'] := Month;
      ParamValues['pJahr'] := Year;
    end;
    Open;

    if (RecordCount = 0) then
    begin
      Append;
      FieldByName('Benutzer').AsInteger := UserID;
      FieldByName('Login').AsDateTime := Jetzt;
      FieldByName('Tag').AsInteger := Day;
      FieldByName('Monat').AsInteger := Month;
      FieldByName('Jahr').AsInteger := Year;
    end
    else
    begin
      First;
      Edit;
      if (FieldByName('Login').AsVariant <> NULL) then
      begin
        FieldByName('Zeit').AsFloat := CalcArbeitszeit(FieldByName('Login').AsDateTime,
          Jetzt, PauseVon, PauseBis, Pause);
      end;
      FieldByName('Logout').AsVariant := null;
    end;
    Post;
    Close;
  end;
end;
Ist das tatsächlich ein Speicherleck oder mache ich "nur" irgendwas falsch??
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Speicherleck in TIdSNTP??

  Alt 25. Aug 2008, 14:52
Liest du hier weiter ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Speicherleck in TIdSNTP??

  Alt 25. Aug 2008, 14:58
Danke für den Hinweis
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz