[PATCH] Thread safe stdio
Thu Feb 12 20:50:00 GMT 2004
Christopher Faylor wrote:
> On Wed, Feb 11, 2004 at 11:08:57AM +0100, Thomas Pfaff wrote:
>>The __sinit call must be done after malloc is initialized, otherwise the
>>mutex creation will fail.
> I am not comfortable with this part of the patch. I moved the __sinit
> call where I did for a reason. It needed to be called earlier in the
> process. I'm also somewhat uncomfortable with using malloc for this
> purpose in general. It seems like a heavyweight solution to something
> that could be solved with either a muto or a critical section.
Please keep in mind that:
- There does not exist only one mutex, every file has its own that is
created on fopen and destroyed when it is closed.
- I do not call malloc directly, it is called as part of the mutex creation.
- Every mutex that is associated with an open file must be fork save, it
has to be recreated after a fork.
- _flock_t can not be a CRITICAL_SECTION nor class muto. You can not
implement newlibs _LOCK_INIT macro with this types, i have not seen
something like a CRITICAL_SECTION_INITIALIZER or a MUTO_INITIALIZER.
More information about the Cygwin-patches