diff options
Diffstat (limited to 'winsup/cygwin/select.cc')
-rw-r--r-- | winsup/cygwin/select.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index 073e8bcad..970e529f6 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -622,6 +622,7 @@ thread_pipe (void *arg) { pipeinf *pi = (pipeinf *) arg; bool gotone = false; + DWORD sleep_time = 0; for (;;) { @@ -645,7 +646,9 @@ thread_pipe (void *arg) } if (gotone) break; - Sleep (10); + Sleep (sleep_time >> 1); + if (sleep_time < 20) + ++sleep_time; } out: return 0; @@ -1634,6 +1637,7 @@ thread_mailslot (void *arg) { mailslotinf *mi = (mailslotinf *) arg; bool gotone = false; + DWORD sleep_time = 0; for (;;) { @@ -1657,7 +1661,9 @@ thread_mailslot (void *arg) } if (gotone) break; - Sleep (10); + Sleep (sleep_time >> 1); + if (sleep_time < 20) + ++sleep_time; } out: return 0; |