------------------------------------------------------------
revno: 2414
committer: cologic <[email protected]>
branch nick: dcplusplus
timestamp: Thu 2011-02-03 14:36:43 -0500
message:
fix hangs on exit in active mode with WINE; see
https://bugs.launchpad.net/dcplusplus/+bug/704743
modified:
dcpp/SearchManager.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/SearchManager.cpp'
--- dcpp/SearchManager.cpp 2011-01-02 17:12:02 +0000
+++ dcpp/SearchManager.cpp 2011-02-03 19:36:43 +0000
@@ -128,7 +128,12 @@
while(!stop) {
try {
- while( (len = socket->read(&buf[0], BUFSIZE, remoteAddr)) > 0) {
+ while ( true ) {
+ // @todo: remove this workaround for http://bugs.winehq.org/show_bug.cgi?id=22291
+ // if that's fixed by reverting to simpler while (read(...) > 0) {...} code.
+ while (socket->wait(400, Socket::WAIT_READ) != Socket::WAIT_READ);
+ if (stop || (len = socket->read(&buf[0], BUFSIZE, remoteAddr)) <= 0)
+ break;
onData(&buf[0], len, remoteAddr);
}
} catch(const SocketException& e) {
_______________________________________________
Mailing list: https://launchpad.net/~linuxdcpp-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~linuxdcpp-team
More help : https://help.launchpad.net/ListHelp