[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[DDL-ML] Erddcd command queue length



Erddcd: QSIZE in queue.c ist 2000. Alle Kommandos die während POWER
OFF empfangen werden landen in der Queue.

* Was sollte passieren wenn die Queue voll ist? In queue_add sollte
  irgendwie

  in++;
  if (in==QSIZE) in=0;
  if (in == out) { ???? }
  pthread_mutex_unlock(&queue_mutex);

  berücksichtigt werden.

* Müssen während des POWER OFF alle Kommandos in der Queue abgelegt
  werden oder reicht es für jedes gesteuerte Objekt das letzte
  Kommando aufzuheben und alles andere wegzuwerfen? Sollte man SET GL
  so optimieren? Geht das für SET GA? Wie radikal kann man sein?

Da man nicht bei jedem queue_add die ganze Queue ablaufen will denke
ich an einen Garbagecollect der bei voller Queue eine Runde läuft
und optimiert. Über die Details kann man sich dann immer noch
Gedanken machen wenn wir einig sind, daß wir sowas haben wollen.

Die andere Alternative - eine dynamische Queue bei der dann eben der
Arbeitsspeicher die Grenze setzt - ist auch nicht das gelbe vom Ei, da
dann beim POWER ON zig Befehle abgeackert werden müssen.

Harald.