diff options
author | Christopher Faylor <me@cgf.cx> | 2000-09-10 16:43:47 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-09-10 16:43:47 +0000 |
commit | 4f7ac76aae140bb9de50fe4c81e3cf6d23b100e2 (patch) | |
tree | 81e313f620968f06dc4d5cc3e42e9919595a52e2 /winsup/cygwin | |
parent | 4497c0df52833fc777f0708567d2e1533ac794dc (diff) | |
download | cygnal-4f7ac76aae140bb9de50fe4c81e3cf6d23b100e2.tar.gz cygnal-4f7ac76aae140bb9de50fe4c81e3cf6d23b100e2.tar.bz2 cygnal-4f7ac76aae140bb9de50fe4c81e3cf6d23b100e2.zip |
* dcrt0.cc (dll_crt0_1): Initialize thread and debug stuff before handling
exec/fork.
* dtable.cc (dtable::fixup_after_exec): Always clear out the read ahead buffer
whether closing or adjusting.
* path.cc (chdir): Avoid a compiler warning.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 7 | ||||
-rw-r--r-- | winsup/cygwin/dtable.cc | 12 | ||||
-rw-r--r-- | winsup/cygwin/path.cc | 2 |
4 files changed, 19 insertions, 10 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ab308e5b3..ebac8092a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +Sun Sep 10 12:40:49 2000 Christopher Faylor <cgf@cygnus.com> + + * dcrt0.cc (dll_crt0_1): Initialize thread and debug stuff before + handling exec/fork. + * dtable.cc (dtable::fixup_after_exec): Always clear out the read ahead + buffer whether closing or adjusting. + * path.cc (chdir): Avoid a compiler warning. + Sat Sep 9 23:29:17 2000 Christopher Faylor <cgf@cygnus.com> * path.cc (chdir): Use the full path for cwd_win32. Consider attempts diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index cc48d7389..ac67eb807 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -644,6 +644,10 @@ dll_crt0_1 () user_data->resourcelocks->Init (); user_data->threadinterface->Init0 (); + + threadname_init (); + debug_init (); + regthread ("main", GetCurrentThreadId ()); char **envp = NULL; @@ -713,9 +717,6 @@ dll_crt0_1 () /* Initialize events. */ events_init (); - threadname_init (); - debug_init (); - /* Allow backup semantics. It's better done only once on process start instead of each time a file is opened. */ set_process_privileges (); diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 9e7b3c5d5..b2a765a3e 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -445,13 +445,13 @@ dtable::fixup_after_exec (HANDLE parent, size_t sz, fhandler_base **f) first_fd_for_open = 0; for (size_t i = 0; i < size; i++) if (fds[i]) - if (fds[i]->get_close_on_exec ()) - release (i); - else - { - fds[i]->clear_readahead (); + { + fds[i]->clear_readahead (); + if (fds[i]->get_close_on_exec ()) + release (i); + else fds[i]->fixup_after_exec (parent); - } + } } void diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index bef272316..58a1fb8bc 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -2507,7 +2507,7 @@ chdir (const char *dir) else p++; - int len = strlen (p); + size_t len = strlen (p); if (len > 2 && strspn (p, ".") == len) { set_errno (ENOENT); |