From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Sat 02 Aug 2003 - 22:36:25 EEST
Selamlar..
Sorunun cevabi bu kadar basit olmayabilir bazen.
Eger acilan pencereniz bir sekilde blocking yapiyorsa bu sorunu threadlar i=
le asmaniz cok zor. Mantikli yol, o yeni pencere icin kodu fork etmek, o pe=
ncere kodunu ayri bir process olarak isletmek olabilir. Biraz verimsizdir a=
ma basittir. Gerci, pthread'lar aslen ayni metotla calisir ama bu sekilde i=
sin daha kolay ilerlemesi saglanabilir. Her iki pencere aralarinda shmem, s=
ignaller vs. gibi IPC cagrilari ile haberlesebilir. pthread yonteminde, thr=
eadin izlenmesi (pthread_join) her zaman sorun olmustur netekim..
Diger turlu calismada her iki penceredeki tum I/O islevlerini thread safe o=
ldugu kadar asenkron non-blocked I/O calisacak sekilde yapmaniz gerekir. Bu=
nu yapmak digerinden birhayli zahmetlidir. Ama yaparsaniz (buglari da oldur=
ebilirseniz) sistem canavar olur tek kelimeyle.=20
Saygi ve sevgiler..
On Thu, 31 Jul 2003 08:23:10 +0300
Mustafa Sahin <msahin@comu.edu.tr> wrote:
> Bu tip durumlarda thread mant=FDg=FD kullan=FDl=FDr yani senin dongu icin=
de=20
> yapt=FDrd=FDg=FDn islemi thread icinde yapt=FDr=FDrs=FDn boylece diger =20
> uygulamalar=FDn ve senin diger kodlar=FDnda arada bir calisir GTK da thre=
ad=20
> var m=FD bilmiyorum ama bakman laz=FDm.
> san=FDr=FDm soyle olmas=FD gerekiyor
>=20
> gdk_threads_enter();
> //senin dongun
> gdk_threads_leave();
>=20
>=20
>=20
> necati.demir@students.comu.edu.tr wrote: