-
Forum: Software-Projekte der Mitglieder
by WladiD,
7. Mai 2013
Ich weiß nicht mehr wieviele Male ich mir fest vorgenommen habe mich wieder da ran zu setzen... :roll: Auch AnyiQuack und Lauge will ich irgendwann mal wieder auf Vordermann bringen. Und die Projektseiten müssten auch mal gepflegt werden.
Nach der Arbeit hab ich einfach keine Zeit/Lust mehr oder ich werde einfach zu alt. :?
-
Forum: Software-Projekte der Mitglieder
by WladiD,
10. Mai 2011
Heute habe ich die neue Version 1.0.9 veröffentlicht.
Was ich hier ehemals Vorstellte, hat sich (mal wieder) grundlegend geändert, aus diesem Grund habe ich den 1. Beitrag komplett überarbeitet (siehe oben).
Diese Unit wird übrigens produktiv in Lauge eingesetzt.
Dort werden 2 spezielle Thread-Pools verwendet. Einer für sämtliche HTTP-Anfragen und ein Bild-Skalierungs-Thread-Pool :lol:
-
Forum: Software-Projekte der Mitglieder
by WladiD,
7. Apr 2011
Ein gebündeltes Dankeschön an alle Tester!
Ihr könnt euch nicht vorstellen, wie sehr mich diese Ergebnisse beruhigen und motivieren. Es ist gar nicht so einfach einen Thread-Pool ohne eine (Windows-)Message-Queue, sondern nur mit Delphi-Bordmitteln umzusetzen. Ich bin nämlich optimistisch in den kommenden Jahren diesen auf Mac und Linux laufen sehen zu können. :twisted:
-
Forum: Software-Projekte der Mitglieder
by WladiD,
7. Apr 2011
Auch dir ein Dankeschön!
Da ich parallel schon zig Tests durchgeführt habe, sehe ich jetzt einfach mal die Änderungen als "stabil" an.
-
Forum: Software-Projekte der Mitglieder
by WladiD,
7. Apr 2011
Super, Danke!
-
Forum: Software-Projekte der Mitglieder
by WladiD,
7. Apr 2011
Ein Hallo an alle DP-Mitglieder,
muss seit gestern wieder den ThreadPool erweitern und habe einige heikle Änderungen durchführen müssen. Soweit sieht es ganz gut aus, die DUnit-Tests laufen problemlos, auf meinem Core-i7 920 und in Virtual-PC (Single-Core), durch. Doch was heisst das schon...ich brauche noch ein paar Tests von anderen Systemen.
Wer ist von Euch so nett und lässt den...
-
Forum: Software-Projekte der Mitglieder
by WladiD,
31. Dez 2010
Hallo alle zusammen,
heute habe ich die neue Version 1.0.3 des ThreadPool veröffentlicht (Download-Links wie gehabt im 1. Beitrag).
Die ThreadPool-Unit wurde massiv rationalisiert. Es werden jetzt weniger Locks benötigt und die ganze Unit konnte (trotz höherer Versionsnummer) etwas schrumpfen.
In der Version 1.0.2, die ich hier nicht vorstellte, gab es eine CodeSite-Integration, die...
-
Forum: Software-Projekte der Mitglieder
by WladiD,
16. Dez 2010
Das ist schon ohne weiteres Zutun möglich:
var
Task:TMyTask;
begin
Task:=TMyTask.Create(Owner);
// Task mit Daten füllen
Task.OnDone:=procedure(Sender:TObject)
-
Forum: Software-Projekte der Mitglieder
by WladiD,
16. Dez 2010
Soeben habe ich die neue Version 1.0.1 veröffentlicht. (Links siehe 1. Beitrag)
Neben einigen Optimierungen enthält es jetzt die Unterstützung für priorisierbare Tasks. Ableitende Tasks können die Eigenschaften TPoolTask.Priority oder TPoolTask.PriorityRaw veröffentlichen und der entsprechende Manager muss die Eigenschaft TPoolManager.SortTasks auf TRUE setzen um die Sortierung zu aktivieren....
-
Forum: Software-Projekte der Mitglieder
by WladiD,
16. Dez 2010
Generics/Closures waren neu in D2009 = alpha
Generics/Closures wurden in D2010 verbessert = beta
Generics/Closures wurden in DXE weiter verbessert = stable?
So oder so ähnlich wird es wohl sein. Genau da vermute ich den Fehler. Daher werde ich das bisher versuchte wieder droppen und nicht weiter probieren etliche Workarounds einzubauen, um mit D2009 kompatibel zu sein. Der ganze ThreadPool...
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Kommt der Fehler sofort nach dem Programmstart oder erst wenn Sie auf den Button "Add tasks" klicken. Gibt es irgendeine Ausgabe im Memo, kommt die AV sporadisch oder immer an der selben Stelle. Oder treten die Fehler gar in meinen Kompilaten auf?
Fragen über Fragen. Hätte ich mir doch gleich denken können, dass man für keine "Plattform" programmiert, die man selbst nicht hat/testen kann. :cry:
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Habe eine ungeteste Anpassung für Delphi 2009 eingebaut und ins Repository eingespielt:
ThreadPool (Revision 11)
Musste die bewährte "Compilers.inc" von Mike Lischke einbinden.
Kann das jemand testen und mir mitteilen, ob es sich damit jetzt compilieren lässt?
Dank im Voraus!
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Alles klar Zwoetzen,
danke für die Information (war zu faul zum googeln :wink:), werde demnächst (bin grad an was anderem dran) die erwähnte Compiler-Weiche einbauen und mich hier wieder melden.
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Das ist doch was, womit ich etwas anfangen kann. Ich habe soeben die Hilfe durchforstet und finde kein Info, seit wann die die Klassenkonstruktoren/-destruktoren unterstützt werden. Werden Sie gänzlich nicht unterstützt, oder habe ich sie irgendwie falsch deklariert (z.B. muss im public/private)?
Ansonsten könnte man eine Compiler-Weiche einbauen und sich bei D2009 des...
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Generics wären nicht das Problem, vielmehr ist es die fehlende Unterstützung von Closures, die mir eine Umsetzung für < D2009 scheinbar unmöglich machen (zumindest nach dem aktuellen Konzept). Sicherlich, wäre es irgendwie machbar, aber das würde meinen Zeitrahmen sprengen.
Wer einmal die Vorteile von Closures erkannt hat, kann nicht mehr ohne...
Sorry.
-
Forum: Software-Projekte der Mitglieder
by WladiD,
15. Dez 2010
Hmm, Mist , ich dachte das einzig "exotische" was ich in ThreadPool benutzt hätte, wären die Closures. Es wurde mit Delphi 2010 entwickelt und den Meldungen nach zu urteilen, unterstützt D2009 keine verschachtelten Typen, also sowas in der Art:
TPoolThread = class(TThread)
type // verschachtelte Typen deklaration
TLockList = TObjectList<TMultiReadExclusiveWriteSynchronizer>;
...
-
Forum: Software-Projekte der Mitglieder
by WladiD,
14. Dez 2010
Nachdem ich vergeblich nach einem Open-Source Thread-Pool für Delphi gesucht habe, welches meine Bedürfnisse abdeckt, musste ich mich dafür entschließen, einen eigenen zu schreiben. Diesen möchte ich euch hier vorstellen.
Vereinfacht kann man die Funktionsweise des ThreadPools wie folgt beschreiben:
Man verbindet sich aus einem beliebigen Thread mit dem spezifischen Manager (welcher...