This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib 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: [PATCH]: Thread safe stdio with cygwin


Jeff,

memset makes only sure that _lock does not contain random data before __lock_init_recursive. __lock_init_recursive is called later when the file is really opened.

__sbprintf is a special case because it generates a fake FILE pointer and its associated buf on the stack, therefore there is no need to lock it fo thread safety.

Thomas

Jeff Johnston wrote:
Thomas,

You should be using __lock_init_recursive to initialize the locks rather than zeroing them out.
The code in __sbprintf should probably be closing the lock after the call to VFPRINTF as well.


-- Jeff J.

Thomas Pfaff wrote:

This patch adds support for thread safe stdio for Cygwin.

Cygwin uses dynamic mutexes for locking, therefore it is
necessary to:

1. Initialize FILE pointers _lock properly.
2. Destroy the lock when it is no longer needed.

Regards,

Thomas

2004-01-12 Thomas Pfaff <tpfaff@gmx.net>

    * libc/stdio/fclose.c: Include sys/lock.h.
    (fclose): Destroy lock when file is closed.
    * libc/stdio/findfp.c (__sfp): Initialize file pointers _lock
    member.
    * libc/stdio/freopen.c: Include sys/lock.h.
    (_freopen_r): Destroy lock when file is closed.
    * libc/stdio/vfprintf.c (__sbprintf): Initialize file pointers
    _lock member.






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