76,11 → 76,20 |
|
CHECK_INIT (rptr, fp); |
|
/* We can't use the _newlib_flockfile_XXX macros here due to the |
interlocked locking with the sfp_lock. */ |
#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT |
int __oldcancel; |
pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel); |
#endif |
_flockfile (fp); |
|
if (fp->_flags == 0) /* not open! */ |
{ |
_funlockfile (fp); |
#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT |
pthread_setcancelstate (__oldcancel, &__oldcancel); |
#endif |
return (0); |
} |
/* Unconditionally flush to allow special handling for seekable read |
103,6 → 112,9 |
#endif |
|
__sfp_lock_release (); |
#ifdef _STDIO_WITH_THREAD_CANCELLATION_SUPPORT |
pthread_setcancelstate (__oldcancel, &__oldcancel); |
#endif |
|
return (r); |
} |