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>2004-01-15 22:51:49 +0300
committerChristopher Faylor <me@cgf.cx>2004-01-15 22:51:49 +0300
commitac02533e08798c85b4b8f3d8422f5c5f4c437031 (patch)
tree776bab6ccbc3557a95c88f9d9fcc820dc32ccdac /winsup
parent6a150987938abfef78f72d0bf4ed6b427b25e040 (diff)
* gentls_offsets: Reinstate unlink of temp files.
* fhandler_console.cc (fhandler_console::close): Fix debugging output. (fhandler_console::fixup_after_fork): Decrement open_fhs prior to call to fhandler_console::open since this would cause incrementing too much incrementing in child processes. (Probably needs to be handled more elegantly someday) (fhandler_console::fixup_after_exec): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog13
-rw-r--r--winsup/cygwin/fhandler_console.cc5
-rwxr-xr-xwinsup/cygwin/gentls_offsets4
3 files changed, 18 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b52a26b8c..16aa73fe5 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,16 @@
+2004-01-15 Christopher Faylor <cgf@redhat.com>
+
+ * gentls_offsets: Reinstate unlink of temp files.
+
+2004-01-14 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_console.cc (fhandler_console::close): Fix debugging output.
+ (fhandler_console::fixup_after_fork): Decrement open_fhs prior to call
+ to fhandler_console::open since this would cause incrementing too much
+ incrementing in child processes. (Probably needs to be handled more
+ elegantly someday)
+ (fhandler_console::fixup_after_exec): Ditto.
+
2004-01-14 Christopher Faylor <cgf@redhat.com>
* cygtls.h (_threadinfo::call): Remove regparm declaration to work
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 86c02009a..af825defb 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -680,8 +680,7 @@ fhandler_console::close (void)
if (!cygheap->fdtab.in_vfork_cleanup () && --(cygheap->open_fhs) <= 0
&& myself->ctty != TTY_CONSOLE)
{
- syscall_printf ("open_fhs %d, freeing console %p", cygheap->open_fhs,
- myself->ctty);
+ syscall_printf ("open_fhs %d", cygheap->open_fhs);
FreeConsole ();
}
debug_printf ("decremented open_fhs, now %d", cygheap->open_fhs);
@@ -1761,6 +1760,7 @@ fhandler_console::fixup_after_fork (HANDLE)
/* Windows does not allow duplication of console handles between processes
so open the console explicitly. */
+ cygheap->open_fhs--; /* The downside of storing this in cygheap. */
if (!open (O_NOCTTY | get_flags (), 0))
system_printf ("error opening console after fork, %E");
@@ -1791,6 +1791,7 @@ fhandler_console::fixup_after_exec (HANDLE)
HANDLE h = get_handle ();
HANDLE oh = get_output_handle ();
+ cygheap->open_fhs--; /* The downside of storing this in cygheap. */
if (!open (O_NOCTTY | get_flags (), 0))
{
int sawerr = 0;
diff --git a/winsup/cygwin/gentls_offsets b/winsup/cygwin/gentls_offsets
index 434707b06..375b66840 100755
--- a/winsup/cygwin/gentls_offsets
+++ b/winsup/cygwin/gentls_offsets
@@ -5,7 +5,7 @@ open(TLS, $tls) or die "$0: couldn't open tls file \"$tls\" - $!\n";
my $struct = '';
my @fields = ();
my $def = '';
-my $tls = join('', <TLS>);
+$tls = join('', <TLS>);
$tls =~ s/\n[^\n]*gentls_offsets[^\n]*\n(.+)\Z/$1/os;
my $pre = $`;
substr($tls, 0, length($pre)) = '';
@@ -75,5 +75,5 @@ open(OFFS, "/tmp/$$.a.out|") or die "$0: couldn't run \"/tmp/$$.a.out\" - $!\n";
print TLS_OUT <OFFS>;
close OFFS;
close TLS_OUT;
-# unlink "/tmp/$$.cc", "/tmp/$$.a.out";
+unlink "/tmp/$$.cc", "/tmp/$$.a.out";
exit(0);