diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-06-24 13:13:44 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-06-24 13:13:44 +0000 |
commit | 7b3e3bfd49bef27c5df703e9c079c0c1eb454ecc (patch) | |
tree | 2738ce15cc47141ea0acec86e190975d6a7fb650 /winsup/cygwin/net.cc | |
parent | 6b9b8ecd853a1a01fd7650a48b4dd842bbaecdc9 (diff) | |
download | cygnal-7b3e3bfd49bef27c5df703e9c079c0c1eb454ecc.tar.gz cygnal-7b3e3bfd49bef27c5df703e9c079c0c1eb454ecc.tar.bz2 cygnal-7b3e3bfd49bef27c5df703e9c079c0c1eb454ecc.zip |
* net.cc (cygwin_bindresvport_sa): Fix usage of last_used_bindresvport.
Diffstat (limited to 'winsup/cygwin/net.cc')
-rw-r--r-- | winsup/cygwin/net.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index c18a775de..7e9d14c45 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -2219,9 +2219,9 @@ cygwin_bindresvport_sa (int fd, struct sockaddr *sa) for (int i = 0; i < NUM_PORTS; i++) { - while ((myport = InterlockedExchange (&cygwin_shared->last_used_bindresvport, 0)) == 0) + while ((myport = InterlockedExchange (&cygwin_shared->last_used_bindresvport, -1)) == -1) low_priority_sleep (0); - if (--myport < PORT_LOW) + if (myport == 0 || --myport < PORT_LOW) myport = PORT_HIGH; InterlockedExchange (&cygwin_shared->last_used_bindresvport, myport); |