Hej,

On Tue, Dec 27, 2011 at 11:28:52PM +0100, Bartosz Brachaczek wrote:
> Próbowałem poprawić dzisiaj błąd w Kadu na Windows polegający na tym,
> że próba wysłania dużej wiadomości (u mnie to było około 400 znaków) w
> dużej konferencji (10 osób) kończyła się niepowodzeniem. Co ciekawe,
> podczas używania wersji Kadu z oknem terminala, na którym wypisywane
> było wyjście diagnostyczne libgadu, błąd nie występował. Doszedłem w
> końcu do tego, że send() w gg_write_common() podczas wysyłania szóstej
> czy siódmej kopii wiadomości nie wyrabia, zwraca -1 i ustawia errno na
> EAGAIN - chyba że libgadu wypisuje jeszcze coś na terminal, czym
> zarabia trochę czasu. Przez to gg_send_packet() uznaje, że operacja
> się nie powiodła i wiadomość faktycznie nie zostaje w całości wysłana.
> Zrobienie najprostszej rzeczy, czyli obsługi EAGAIN w pętli w
> gg_write_common() naprawiło problem.
> 
> Tak sobie myślę, że gg_send_packet() powinno obsługiwać EAGAIN,
> prawda? Czy też powinno to się dziać na innym poziomie?

Czasami się dziwie w jaki sposób libgadu poprawnie działa... 

Spróbuj z r1240, myśle że to tak powinno być. Tylko dla polaczen
asynchronicznych, bo w synchronicznych nie może wystąpić EAGAIN?
_______________________________________________
libgadu-devel mailing list
libgadu-devel@lists.ziew.org
http://lists.ziew.org/mailman/listinfo/libgadu-devel

Reply via email to