Newsgroup: it.comp.os.linux.development
Titolo: GTk threads

Salve. ho un problema con le gtk. Gia' ho postato un messaggio simile tempo fa,
ma questa volta ho qualcosa in piu' da aggiungere.
Ho un programma principale che ad un certo punto esegue una funzione che
impedisce alla finestra di ridisegnarsi regolarmente. In pratica, questo l'ho
capito grazie a nemesis, perche' il processo principale e' impegnato a eseguire
la funzione e percio' non puo' ridisegnare la finestra. Allora mi hanno
suggerito di usare fork. Ok, un po' di IPC lo conosco quindi ho detto "ora uso
il fork". pero' poi ho pensato: E come faccio a far avanzare la statusbar nella
finestra principale(che poi e' l'unica)? se ricordo bene il fork crea un
processo parallelo al genitore con una copia locale di tutte le variabili.
Quindi come fa il figlioletto a far aumentare la statusbar del padre?!? Mica
devo usare i segnali, fifo o cose del genere  :( ?!?
In rete ho letto che esistono che esistono questi threads, e credo di aver
capito che sono qualcosa di molto simile al fork. Giusto?
Per favore... vi imploro una spiegazione chiara e semplice. Oppure un semplice
link a qualche sito. Per favore :)
Grazie mille a tutti voi
-- 
Posted from 
ppp-3-35.26-151.libero.it
 [151.26.35.3] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 link a qualche sito. Per favore :)
Non e' una paglia spiegare i threads da 0. Dai un'occhiata alle faq di
comp.programming.threads (non a _tutte_ per carita' :-)
A parte tutto l'idea del thread puo' essere un'ottima strada da
intraprendere. Non so come sia lo status di GTK/Glib da quel punto di vista
quindi non so l'usabilita' della soluzione restando in ambito. Ma se vuoi
usare pthread/pth non ci sono problemi di sorta.
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! 3rd Law of Computing: Anything that can go wr
		fortune: Segmentation violation -- Core dumped !>-

 di molto simile al fork.
Vedi (mi pare) la chiamata di sistema clone() (occhio che è specifica di 
Linux), che ti permette di ottenere un processo figlio che condivide 
(sia in lettura sia in scrittura, anzichè in sola lettura come ti 
permetterebbe fork()) la memoria virtuale del processo chiamante, quanto 
di più vicino alla definizione classica di thread si possa ottenere in 
Unix. Sennò lo standard (?) suggerisce l'uso delle funzioni della 
famiglia pthreads. Comunque mi sembra molto strano che in GTK non ci 
siano già funzioni per il multithreading, hai controllato bene?

 siano già funzioni per il multithreading, hai controllato bene?
Usare pthread e' come usare clone, solo che pthread ha un API standard.
Le glib henno qualcosa per i thread, ma non credo sia molto utilizzabile
nella serie 1.2
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! The Moment Is Now In All History, The Time Has Arrived And This Is The
  		One Place To Be. !>-
  			Savatage - This Is The Time

standard.
Ma di pthreads mi hanno sempre detto peste e corna (una "forzatura", uno 
"schifo", ecc), mentre clone si usa esattamente come fork, anche se 
portabilità = 0

 portabilità = 0
Mah, l'implementazione di linux non e' POSIX per vari motivi che non mi
ricordo assolutamente. Non vedo nemmeno perche' pthreads dovrebbe essere un
cesso. Cmq usare pthread_create e' ancora piu' facile: non devi preoccuparti
dello stack :-)
 
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Computers are not intelligent.  They only think they are. !>-