gtk und fork - text lässt sich nicht setzen

Dieses Thema im Forum "C/C++" wurde erstellt von ccm, 25.03.2005.

  1. ccm

    ccm Grünschnabel

    Dabei seit:
    29.09.2003
    Beiträge:
    8
    Zustimmungen:
    0
    hallo zusammen!

    ich hab hier einkleines problem in c mit gtk und fork. das auskommentierte gtk_entry_set_text geht, und das im child-prozess nicht!
    hier nun das programm:

    main(...
    GtkWidget *win;
    GtkWidget *txtbox;
    ..........
    txtbox = lookup_widget (GTK_WIDGET (win), "entry1");
    //gtk_entry_set_text (txtbox, "hier gehts!");

    if (!fork()) { //child
    gtk_entry_set_text (txtbox, "und hier nichtmehr!!!");
    exit(0);
    }

    //hier unten kommt erst:
    gtk_main (); //also das ist im parent..

    fehler gibts keinen. muss ich dann da irgendwie aktualisieren? hat jemand ne idee? ich greif ja im child auf den gleichen speicher zu, oder? (wenn ich die id "txtbox" mit printf ausgeben lasse kommt auch die gleiche raus im child raus!)

    danke schon mal für antworten!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 pinky, 26.03.2005
    Zuletzt bearbeitet: 26.03.2005
    pinky

    pinky König

    Dabei seit:
    11.08.2004
    Beiträge:
    795
    Zustimmungen:
    0
    Hallo,
    Gtk+ ist nicht "thread-safe", was heißt, dass du nicht von mehreren Prozessen Gtk+ Aufrufe machen kannst.
    In Gtk# verwendet man für solche Fälle 'Gtk.ThreadNotify'. Was ähnliches muß es auch in der C API geben, schau einfach mal in der Doku nach oder frag mal google.

    Mehr kann ich dir leider nicht sagen, da ich schon länger nichts mehr mit Gtk+ in C gemacht habe.

    EDIT: Vielleicht hilft dir das weiter: http://developer.gnome.org/doc/API/2.0/gdk/gdk-Threads.html
     
  4. ccm

    ccm Grünschnabel

    Dabei seit:
    29.09.2003
    Beiträge:
    8
    Zustimmungen:
    0
    danke für die antwort!
    der clou war anscheinend, den neuen thread so zu generieren:

    if (!g_thread_create(thready, win, FALSE, &error)) //generiere thread aus fkt: thready ;)
    {
    g_printerr ("Failed to create YES thread: %s\n", error->message);
    exit(0) ;
    }

    und zusätlich
    g_thread_init(NULL);
    gdk_threads_init ();
    gtk_init (&argc, &argv);
    .....
    gdk_threads_enter();
    gtk_main ();
    gdk_threads_leave ();

    und im thread "thready" selbst auch
    gdk_threads_enter();
    gdk_threads_leave ();

    zu verwenden! nur wenn's jemanden interessiert (suchfunktion ;) )
     
Thema:

gtk und fork - text lässt sich nicht setzen

Die Seite wird geladen...

gtk und fork - text lässt sich nicht setzen - Ähnliche Themen

  1. LEDE: Fork von OpenWRT gestartet

    LEDE: Fork von OpenWRT gestartet: Unter dem Namen LEDE haben einzelne OpenWRT-Entwickler ein neues Projekt gestartet. Ziel des neuen Projektes ist es, eine gemeinschaftszentrierte...
  2. NayuOS - freier Fork von Chromium OS vorgestellt

    NayuOS - freier Fork von Chromium OS vorgestellt: NayuOS ist ein neues Open-Source-Betriebssystem für Chromebooks, das ohne Kontakt zu Google auskommt und sich speziell an Entwickler wendet....
  3. Io.js forkt Node.js

    Io.js forkt Node.js: Aus Unzufriedenheit mit der Cloud-Computing Firma Joyent haben einige der eifrigsten Entwickler des Javascript-Frameworks Node.js den Fork Io.js...
  4. OpenBSD-Fork Bitrig 1.0 erschienen

    OpenBSD-Fork Bitrig 1.0 erschienen: Zweieinhalb Jahre nach der initialen Ankündigung ist der OpenBSD-Fork Bitrig in Version 1.0 erschienen. Bitrig will OpenBSD modernisieren, indem...
  5. Mplayer-Fork »mpv«: Version 0.5 veröffentlicht

    Mplayer-Fork »mpv«: Version 0.5 veröffentlicht: Knapp ein Jahr nach der initialen Gründung des alternativen Players »mpv« kann das Projekt auf diverse Veröffentlichungen und zahlreiche...