Rev 1906 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1906 | Rev 3065 | ||
---|---|---|---|
Line 96... | Line 96... | ||
96 | { |
96 | { |
97 | register int f; |
97 | register int f; |
98 | int flags, oflags; |
98 | int flags, oflags; |
99 | int e = 0; |
99 | int e = 0; |
Line 100... | Line -... | ||
100 | - | ||
101 | __sfp_lock_acquire (); |
- | |
102 | 100 | ||
Line 103... | Line 101... | ||
103 | CHECK_INIT (ptr, fp); |
101 | CHECK_INIT (ptr, fp); |
Line 104... | Line 102... | ||
104 | 102 | ||
105 | _flockfile (fp); |
103 | _flockfile (fp); |
106 | 104 | ||
107 | if ((flags = __sflags (ptr, mode, &oflags)) == 0) |
105 | if ((flags = __sflags (ptr, mode, &oflags)) == 0) |
108 | { |
- | |
109 | _funlockfile (fp); |
106 | { |
110 | _fclose_r (ptr, fp); |
107 | _funlockfile (fp); |
Line 111... | Line 108... | ||
111 | __sfp_lock_release (); |
108 | _fclose_r (ptr, fp); |
112 | return NULL; |
109 | return NULL; |
Line 206... | Line 203... | ||
206 | fp->_flags2 = 0; |
203 | fp->_flags2 = 0; |
207 | memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); |
204 | memset (&fp->_mbstate, 0, sizeof (_mbstate_t)); |
Line 208... | Line 205... | ||
208 | 205 | ||
209 | if (f < 0) |
206 | if (f < 0) |
- | 207 | { /* did not get it after all */ |
|
210 | { /* did not get it after all */ |
208 | __sfp_lock_acquire (); |
211 | fp->_flags = 0; /* set it free */ |
209 | fp->_flags = 0; /* set it free */ |
212 | ptr->_errno = e; /* restore in case _close clobbered */ |
210 | ptr->_errno = e; /* restore in case _close clobbered */ |
213 | _funlockfile (fp); |
211 | _funlockfile (fp); |
214 | #ifndef __SINGLE_THREAD__ |
212 | #ifndef __SINGLE_THREAD__ |
Line 230... | Line 228... | ||
230 | if (__stextmode (fp->_file)) |
228 | if (__stextmode (fp->_file)) |
231 | fp->_flags |= __SCLE; |
229 | fp->_flags |= __SCLE; |
232 | #endif |
230 | #endif |
Line 233... | Line 231... | ||
233 | 231 | ||
234 | _funlockfile (fp); |
- | |
235 | __sfp_lock_release (); |
232 | _funlockfile (fp); |
236 | return fp; |
233 | return fp; |
Line 237... | Line 234... | ||
237 | } |
234 | } |