This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Usage of _exit(0) closes fd's of parent process


	Trying to send this to the list again, this time I've made the
attachments gzipped, since the spamassassin on the cygwin mailing list
thought I was sending spam last time.

	I'm running into a serious amount of trouble making a test case that
exhibits the problem. While I do have a test case that theoretically matches
the code in my irc client, in practice the test case works where similar
code in the irc client does not. While the trigger in the irc client remains
_exit(0) and in fact a simple code fragment like this *anywhere* in the
program after a tcp connection is established will cause it to lose the
connection:

      int pid = fork ();
      if (pid == 0)
      {
         _exit (0);
      }

	The fact remains that I am unable to make a test case that exhibits
the problem. Obviously, it is not simply _exit that is causing my problem,
it must be interacting badly with something else in my program. I will keep
looking for the cause.

	Note that unlike I thought originally, this does not affect open
files, only networking connections. I'm aware these are very different sorts
of things on windows though I don't know the details, and apologize for the
confusion. Someone referred to an earlier thread where a somewhat similar
problem had been discussed before. If someone would be so kind as to either
give a URL to the thread, or the subject of the thread so I can find it
myself, I would be very appreciative.

	I am certain that I'll have to narrow things down before I can give
a useful bug report, but if you have suggestions as to what I should be
looking for as suspect code, please let me know. I apologize for not being
able to give you useful information yet.

	What I know is limited but I'll try to follow the reporting
guidelines as much as I can.

	I am using cygwin 1.7.4 on windows XP sp3

	I have attempted to google for the problem as well as search the
mailing list archives for similar problems to mine, but so far I have found
nothing.

	This client worked previously in cygwin 1.5.x, and also does in
linux. While I know that's not particularly useful information given the
changes in cygwin 1.7.x, at least it works somewhere.

	The IRC client is written using the GTK 1.2 toolkit, but uses
select() for managing the networking sockets instead of the gtk api. I do
not know if either of these could be relevant.

	Although the test case I have written functions as it should, I have
attached it in the hope someone has clues.

	I have also attached cygcheck.out as the problem reporting form
requests. I'm not sure why it says I have a 'orphaned' (whatever that means)
version of cygwin installed in C:\cygwin\home\Tim\lurc594\build - the
lurc594 directory and its subdirectories haven't existed for some time. I
did experiment at one point with different versions of cygwin dll's in that
directory which may explain why it remembers something was there.


	I am not subscribed to the mailing list, so it will take me some
time to reply to you if you do not make sure the email is also sent to me.

	Thank you for the help,
	Hikaru

Attachment: cygcheck.out.gz
Description: application/gunzip

Attachment: tmp.c.gz
Description: application/gunzip

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]