Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-05-13 05:42:53 +0400
committerChristopher Faylor <me@cgf.cx>2000-05-13 05:42:53 +0400
commit41010c6a5389d023ad28654eed5fcd0f64eb5ffc (patch)
tree92a62a95d9c0a0ab1611e6b6425ee61bf1696352 /winsup
parent5640cadbc544530a4bde6b0333b1d4aaec837a5b (diff)
* dcrt0.cc (build_argv): Remove unneeded variable.
* select.cc (peek_pipe): Don't check for "ready" if it's already set. (peek_console): Ditto. (peek_serial): Ditto. (peek_socket): Ditto. (peek_windows): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog9
-rw-r--r--winsup/cygwin/dcrt0.cc1
-rw-r--r--winsup/cygwin/select.cc31
3 files changed, 37 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 5a347e3a7..521c7e42d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,12 @@
+Fri May 12 21:35:54 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * dcrt0.cc (build_argv): Remove unneeded variable.
+ * select.cc (peek_pipe): Don't check for "ready" if it's already set.
+ (peek_console): Ditto.
+ (peek_serial): Ditto.
+ (peek_socket): Ditto.
+ (peek_windows): Ditto.
+
Fri May 12 20:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler_raw.cc (write_file, read_file): New wrapper functions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 8c19cceea..a04709ab0 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -382,7 +382,6 @@ static void __stdcall
build_argv (char *cmd, char **&argv, int &argc, int winshell)
{
int argvlen = 0;
- int alloc_cmd = 0; // command allocated by insert_file
int nesting = 0; // monitor "nesting" from insert_file
argc = 0;
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index f5af4b8b1..13df0febd 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -409,6 +409,12 @@ peek_pipe (select_record *s, int ignra)
if (s->read_selected)
{
+ if (s->read_ready)
+ {
+ select_printf ("already ready");
+ gotone = 1;
+ goto out;
+ }
if (fh->bg_check (SIGTTIN) <= 0)
{
gotone = s->read_ready = 1;
@@ -594,6 +600,12 @@ peek_console (select_record *me, int ignra)
return me->read_ready = 1;
}
+ if (me->read_ready)
+ {
+ select_printf ("already ready");
+ return 1;
+ }
+
INPUT_RECORD irec;
DWORD events_read;
HANDLE h;
@@ -777,6 +789,14 @@ peek_serial (select_record *s, int)
HANDLE h;
set_handle_or_return_if_not_open (h, s);
int ready = 0;
+
+ if (s->read_selected && s->read_ready || (s->write_selected && s->write_ready))
+ {
+ select_printf ("already ready");
+ ready = 1;
+ goto out;
+ }
+
(void) SetCommMask (h, EV_RXCHAR);
if (!fh->overlapped_armed)
@@ -843,6 +863,7 @@ peek_serial (select_record *s, int)
goto err;
}
+out:
return ready;
err:
@@ -1078,11 +1099,11 @@ peek_socket (select_record *me, int)
return 0;
}
- if (WINSOCK_FD_ISSET (h, &ws_readfds))
+ if (WINSOCK_FD_ISSET (h, &ws_readfds) || (me->read_selected && me->read_ready))
gotone = me->read_ready = TRUE;
- if (WINSOCK_FD_ISSET (h, &ws_writefds))
+ if (WINSOCK_FD_ISSET (h, &ws_writefds) || (me->write_selected && me->write_ready))
gotone = me->write_ready = TRUE;
- if (WINSOCK_FD_ISSET (h, &ws_exceptfds))
+ if (WINSOCK_FD_ISSET (h, &ws_exceptfds) || (me->except_selected && me->except_ready))
gotone = me->except_ready = TRUE;
return gotone;
}
@@ -1308,6 +1329,10 @@ peek_windows (select_record *me, int)
MSG m;
HANDLE h;
set_handle_or_return_if_not_open (h, me);
+
+ if (me->read_selected && me->read_ready)
+ return 1;
+
if (PeekMessage (&m, (HWND) h, 0, 0, PM_NOREMOVE))
{
me->read_ready = TRUE;