------- Comment #11 from jpr at csc dot fi 2008-02-06 20:54 -------
Subject: Re: I/O leaks handles/memory on Windows XP
I had a look: the problem seems to be with the logic of mutex->counter in
gcc/config/i386/gthr-win32.c. Libgfortran makes the following calls
during an internal write
1) __gthr_win32_mutex_init_function()
- sets counter=-1
- creates a semaphore (the windows handle!)
2)__gthr_win32_mutex_lock()
- increments counter (now 0)
3) __gthr_win32_mutex_unlock()
- decrements counter (now -1 again)
- would release the semaphore, if counter >= 0 but doesn't...!
not a libfortran bug after all(?)
>
>
> ------- Comment #10 from Jerry_V_DeLisle at rl dot gov 2008-02-06 20:25
> -------
> Reply to comment #9:
>
> This is a very important observation. I have checked the code and we have
> code
> that free's the internal unit (free_internal_unit) and I have confirmed that
> it
> is called correctly after every write.
>
> My current thinking now is that we are not locking/unlocking the unit
> correctly
> and maybe it is this lock that is leaving behind a windows handle. Stay
> tuned,
> and thanks for reporting this observation.
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35063
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35063