Motivation bei Privatprojekten (Split aus Diamond of Death)



  • 314159265358979 schrieb:

    Ich dachte mir, dass ich den Plugins grundsätzlich alle Nachrichten weiterleite und das sortieren dann dort mache. Aber egal, wie das nun aussieht, die Antwort kann ja trotzdem irgendwann kommen...

    Und wenn sie kommt, wird sie dem NickchangeJob-Objekt zugeführt. Oder alle laufenden Job-Objekte bekommen alle Zeilen oder alle laufenden Job-Objekte holen sich alle Zeilen. Das hat wohl dann den Nachteil, daß komplexere Handlungen zunächst von der prozedurelen Sicht in endliche Automaten übersetzt werden müssen. Eine Sache, mit der ich nie zufrieden war.



  • Hm, ich habe mir gerade folgendes überlegt: Ich arbeite mit mehreren Threads. 1 Thread fürs lesen und mehrere Threads für die Handler. Wenn dann jemand einen Nickchange ausführen will, ruft er in etwa so eine Funktion auf:

    bool change_nick(string newnick)
    {
        write_line(nickchange(newnick));
    
        response r = wait_for_response();
    
        return r.success;
    }
    

    Der Handler-Thread wartet also im Hintergrund, während weitere Nachrichten eintreffen und bearbeitet werden können. Dann kann man auch noch timeouts einbauen.



  • 314159265358979 schrieb:

    Hm, ich habe mir gerade folgendes überlegt: Ich arbeite mit mehreren Threads. 1 Thread fürs lesen und mehrere Threads für die Handler. Wenn dann jemand einen Nickchange ausführen will, ruft er in etwa so eine Funktion auf:

    bool change_nick(string newnick)
    {
        write_line(nickchange(newnick));
    
        response r = wait_for_response();
    
        return r.success;
    }
    

    Der Handler-Thread wartet also im Hintergrund, während weitere Nachrichten eintreffen und bearbeitet werden können. Dann kann man auch noch timeouts einbauen.

    Und jeder dieser Threads lauscht an allen Nachrichten, wozu er sich natürlich beim Server an- und abmelden muß.
    Jeder dieser Threads ist also eigentlich das, was bisher ein Plugin war.



  • Nein, die Threads sind nur für die Bearbeitung der Nachrichten zuständig. Gelauscht wird immer nur von einem Thread. Was mir allerdings gerade einfällt: Wenn mehr Nachrichten kommen, als Threads frei sind, gibts ein Problem. Hrmpf.


Anmelden zum Antworten