RE: [Linux-programlama] select

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Fri 19 Nov 2004 - 11:00:13 EET


Selamlar..

> Zaten blokesiz (asenkron) soket kullanıyorum ve sokete yazma yapılana kadar select ile 30 sn timeout ile bekletiyorum. Bu bekleme esnasında diğer thread im çalışmaya devam ediyor ve öyle bir noktaya geliyorumki 30 sn bekleyen threade artık boşa bekleme sen devam et çünkü o sokete artık yazılmayacak demek istiyorum. Sorunun çıkış noktası işte tam burasıydı.
>
> Yani blokesiz modda açılmış bir soketi select ile beklerken timeout olacağını bildiğim halde neden bekleteyim?. O yüzden select fonksiyonuna birde pipe descriptörü verdim ve istediğim an diğer thread içinden pipe a bişi yazarak select fonksiyonunu sonlandırabilecek duruma getirdim.
>

İşte püf noktasıda bu zaten. Neden bekletmek ihtiyacı duyuyorsunuz ki?
Bırakın, veri gelince, işlem sinyal handler içinde halledilsin. Yani,
bir select ile bekletmenizin hiç anlamı yok.

Thread'ınız çalışsın güzel güzel. Hiç SELECT vs. koymayın. Nasıl olsa
socket hazır olunca bir SIGIO alacaksınız. Konu bundan ibaret aslında.

ASYNC I/O, anlamak, özümsemek zordur. Tıpkı pointer'lere benzer.
Non-block socket ile ASYNC Socket aynı şey değildir. Tıpkı Array ile
Pointer'in farklı oldukları gibi. Ama bir kere kavradınız mı, elinizdeki
en güçlü araç oluverirler. ASync işlevler, bekleme denen derdi ortadan
kaldırmak için vardır. Tepe tepe kullanılmalıdırlar..

Saygı ve sevgiler..

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.