003
12.02.2004, 13:04 Uhr
ao
(Operator)
|
Die Timer-Klasse ist doch nur dazu da, für den periodischen Aufruf zu sorgen. Die weiß nicht, was sie da aufruft und welche Sync-Probleme dadurch entstehen (können).
Der User-Callback weiß das aber, und der muss dafür sorgen, dass die Reihenfolge eingehalten wird.
Wenn es also zwei Timer-Instanzen gibt, deren User-Callbacks konkurrieren könnten, dann müssen diese durch einen Mutex gegeneinander gesperrt werden.
Ob man das vorsichtshalber gleich beim Eintritt in den Callback macht ob man oder genauer hinschaut und nur die kritischen Statements schützt, ist Geschmackssache und hat mit den allgemeinen Anforderungen an Performance, an Sicherheit, an Pflegbarkeit, mit dem Können des Programmierers usw. zu tun.
Solange das Ding noch mitten in der Entwicklung ist und sich täglich ändert, wird man vorsichtig sein und lieber zuviel schützen und etwas langsamer sein als zuwenig schützen und nach einer unbedachten Codeänderung auf einmal Race-Conditions kriegen. Das Finetuning kommt dann später.
ao |