QWebkit in eigenem Prozess


  • Mod

    Hallo,

    mal eine kurze, etwas spezifische Frage.
    Da QWebkit nicht thread safe ist, muss ich wohl mehrere "Tasks" in QProcess Prozesse auslagern.
    Muss ich dass entsprechende Modul dann in eine eigene Exe packen, oder gibt es eine möglichkeit Code/Klassen
    in einem eigenen Prozess zu starten, ohne ein externes Programm aufzurufen?

    phlox81



  • Macht das WebKit2 nicht selbst? Ansonsten wüsste ich nicht, wie das automatisch gehen sollte.


  • Mod

    Mechanics schrieb:

    Macht das WebKit2 nicht selbst? Ansonsten wüsste ich nicht, wie das automatisch gehen sollte.

    Das Problem sind hier eher die Klassen von Qt. Diese sind nicht threadsafe, zumindest im 4.8 zweig.
    Denke da hat sich wenig mit 5.0 geändert.

    Aber jetzt hab ich noch ein weiteres Problem, weil ich mit SQLite immer nur mit einem Prozess schreiben kann, muss ich die Prozesse irgendwie synchronisieren, oder kann man ein Signal an den Haupt/Schreibprozess senden?
    Alternativ könnte ich das Ergebniss in eine Datei schreiben, welche sich wiederum aus einem Threadpool lesen ließe -.-



  • Du kannst mit SQLite auch aus mehreren Prozessen schreiben. Musst die Datenbank nach dem Schreiben nur jedesmal wieder freigeben.

    Zum Synchronisieren der Prozesse kannst du QSystemSemaphore nutzen, QSharedMemory oder QLocalSocket.


  • Mod

    KuhTee schrieb:

    Du kannst mit SQLite auch aus mehreren Prozessen schreiben. Musst die Datenbank nach dem Schreiben nur jedesmal wieder freigeben.

    Zum Synchronisieren der Prozesse kannst du QSystemSemaphore nutzen, QSharedMemory oder QLocalSocket.

    Ich weiss, aber dass mit dem Synchronisieren muss ich mir noch ansehen. Und man kann halt immer nur mit einem Prozess schreiben, und das Locking ist nicht so zu verlässig. So stehts in der SQLite Doku, daher der Gedanke, nur aus einem Thread die DB zu füttern, da die Daten nicht so riesig sind, wäre das sogar ohne Performanceprobleme möglich.


Anmelden zum Antworten