2009-04-28 6 views
1

Als Teil eines Experiments möchte ich einen OpenGL-basierten UI-Server für Anwendungen ähnlich wie X11 oder Quartz in der Architektur schreiben: Ein Kernprozess rendert Objekte in einem einzigen Ansichtsfenster, aber alle grafischen Objekte werden von Remote-Prozessen gesteuert.Verwalten von Ressourcen, die von Clientprozessen zugewiesen werden

Die Idee ist, dass die Stabilität der Ansichten nur vom Kernprozess abhängig ist. Wenn ein Client-Prozess segmet, werden seine zugewiesenen Ressourcen sicher freigegeben. Eine Voraussetzung für dieses Feature ist, dass er sicher herausfinden kann, ob ein Client-Prozess abgestürzt ist.

Was ist die beste Vorgehensweise hier?

Antwort

1

Ich denke, dies sollte wie bei jeder anderen Client/Server-Architektur als ein Ereignis auf der Verbindung zum Client erkannt werden.

Wenn Sie Sockets verwenden, registriert der Socket möglicherweise, dass eine Seite den Socket geschlossen hat (wenn der Prozess abstürzt, wird sein Ende des Sockets geschlossen), und Sie können dies erkennen, suchen Sie den besitzenden Client in der Server-Einträge und bereinigen Sie alle Ressourcen.

Es wäre sehr seltsam für den Server direkt (durch Prozess-IDs oder was auch immer) für die Clients suchen, und das würde auch unnötig beschränken Ihre Architektur nur lokal und nicht über ein Netzwerk.

Verwandte Themen