summaryrefslogtreecommitdiff
path: root/usr/src/lib/libc/port/stdio/flush.c
diff options
context:
space:
mode:
authorraf <none@none>2008-01-23 12:00:31 -0800
committerraf <none@none>2008-01-23 12:00:31 -0800
commita574db851cdc636fc3939b68e80d79fe7fbd57f2 (patch)
tree7a28122042d1d24d9c4df92ba257e2d34d111e2e /usr/src/lib/libc/port/stdio/flush.c
parent4a7ceb24cfcc0a97f96d86cfe5852ae445b50e57 (diff)
downloadillumos-gate-a574db851cdc636fc3939b68e80d79fe7fbd57f2.tar.gz
6598890 cancellation code abuses synonyms
--HG-- rename : usr/src/lib/libc/amd64/crt/cerror64.s => deleted_files/usr/src/lib/libc/amd64/crt/cerror64.s rename : usr/src/lib/libc/port/gen/wait3.c => deleted_files/usr/src/lib/libc/port/gen/wait3.c rename : usr/src/lib/libc/port/gen/wait4.c => deleted_files/usr/src/lib/libc/port/gen/wait4.c rename : usr/src/lib/libc/port/sys/fsync.c => deleted_files/usr/src/lib/libc/port/sys/fsync.c rename : usr/src/lib/libc/sparc/sys/syssun.s => deleted_files/usr/src/lib/libc/sparc/sys/syssun.s rename : usr/src/lib/libc/common/sys/__fcntl.s => usr/src/lib/libc/common/sys/fcntl.s rename : usr/src/lib/libc/common/sys/_rename.s => usr/src/lib/libc/common/sys/rename.s rename : usr/src/lib/libc/port/gen/rename.c => usr/src/lib/libc/port/gen/remove.c rename : usr/src/lib/libc/port/sys/fcntl.c => usr/src/lib/libc/port/sys/libc_fcntl.c
Diffstat (limited to 'usr/src/lib/libc/port/stdio/flush.c')
-rw-r--r--usr/src/lib/libc/port/stdio/flush.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/usr/src/lib/libc/port/stdio/flush.c b/usr/src/lib/libc/port/stdio/flush.c
index bd8328267c..a7d9fabdbb 100644
--- a/usr/src/lib/libc/port/stdio/flush.c
+++ b/usr/src/lib/libc/port/stdio/flush.c
@@ -20,7 +20,7 @@
*/
/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -188,7 +188,7 @@ _flushlbf(void) /* fflush() all line-buffered streams */
int threaded = __libc_threaded;
if (threaded)
- (void) _private_mutex_lock(&_first_link_lock);
+ cancel_safe_mutex_lock(&_first_link_lock);
lp = &__first_link;
do {
@@ -204,14 +204,14 @@ _flushlbf(void) /* fflush() all line-buffered streams */
(_IOLBF | _IOWRT)) {
if (threaded) {
rmutex_t *lk = FPLOCK(fp);
- if (rmutex_trylock(lk) != 0)
+ if (cancel_safe_mutex_trylock(lk) != 0)
continue;
/* Recheck after locking */
if ((fp->_flag & (_IOLBF | _IOWRT)) ==
(_IOLBF | _IOWRT)) {
(void) _fflush_u(fp);
}
- (void) rmutex_unlock(lk);
+ cancel_safe_mutex_unlock(lk);
} else {
(void) _fflush_u(fp);
}
@@ -220,7 +220,7 @@ _flushlbf(void) /* fflush() all line-buffered streams */
} while ((lp = lp->next) != NULL);
if (threaded)
- (void) _private_mutex_unlock(&_first_link_lock);
+ cancel_safe_mutex_unlock(&_first_link_lock);
}
/* allocate an unused stream; NULL if cannot */
@@ -255,7 +255,7 @@ _findiop(void)
int threaded = __libc_threaded;
if (threaded)
- (void) _private_mutex_lock(&_first_link_lock);
+ cancel_safe_mutex_lock(&_first_link_lock);
if (lastlink == NULL) {
rescan:
@@ -283,7 +283,7 @@ rescan:
if (threaded) {
ret = getiop(fp, FPLOCK(fp), FPSTATE(fp));
if (ret != NULL) {
- (void) _private_mutex_unlock(
+ cancel_safe_mutex_unlock(
&_first_link_lock);
return (ret);
}
@@ -316,7 +316,7 @@ rescan:
*/
if ((pkgp = malloc(sizeof (Pkg))) == NULL) {
if (threaded)
- (void) _private_mutex_unlock(&_first_link_lock);
+ cancel_safe_mutex_unlock(&_first_link_lock);
return (NULL);
}
@@ -346,9 +346,9 @@ rescan:
* we need to use the reverse structure.
*/
if ((delta = 0x1000 - ((uintptr_t)pkgp & 0xfff)) <=
- offsetof(Pkg, Pkgn.iob[FILE_ARY_SZ-1].xmagic) &&
+ offsetof(Pkg, Pkgn.iob[FILE_ARY_SZ-1].xmagic) &&
delta % sizeof (struct xFILE) ==
- offsetof(Pkg, Pkgn.iob[0].xmagic)) {
+ offsetof(Pkg, Pkgn.iob[0].xmagic)) {
/* Use reversed structure */
hdr = &pkgp->Pkgr.hdr;
hdr->iobp = &pkgp->Pkgr.iob[0];
@@ -366,7 +366,7 @@ rescan:
fp = hdr->iobp;
for (i = 0; i < FILE_ARY_SZ; i++)
_private_mutex_init(&fp[i]._lock,
- USYNC_THREAD|LOCK_RECURSIVE, NULL);
+ USYNC_THREAD|LOCK_RECURSIVE, NULL);
#else
xfp = hdr->iobp;
fp = &xfp->_iob;
@@ -374,7 +374,7 @@ rescan:
for (i = 0; i < FILE_ARY_SZ; i++) {
xfp[i].xmagic = XMAGIC(&xfp[i]);
_private_mutex_init(&xfp[i].xlock,
- USYNC_THREAD|LOCK_RECURSIVE, NULL);
+ USYNC_THREAD|LOCK_RECURSIVE, NULL);
}
#endif /* _LP64 */
@@ -383,7 +383,7 @@ rescan:
fp->_base = 0;
fp->_flag = 0377; /* claim the fp by setting low 8 bits */
if (threaded)
- (void) _private_mutex_unlock(&_first_link_lock);
+ cancel_safe_mutex_unlock(&_first_link_lock);
return (fp);
}
@@ -551,10 +551,10 @@ _xflsbuf(FILE *iop)
if (n > 0) {
int fd = GET_FD(iop);
- while ((num_wrote =
- write(fd, base, (size_t)n)) != n) {
+ while ((num_wrote = write(fd, base, (size_t)n)) != n) {
if (num_wrote <= 0) {
- iop->_flag |= _IOERR;
+ if (!cancel_active())
+ iop->_flag |= _IOERR;
return (EOF);
}
n -= num_wrote;
@@ -594,7 +594,7 @@ _fflush_l_iops(void) /* flush all buffers */
int threaded = __libc_threaded;
if (threaded)
- (void) _private_mutex_lock(&_first_link_lock);
+ cancel_safe_mutex_lock(&_first_link_lock);
lp = &__first_link;
@@ -627,7 +627,7 @@ _fflush_l_iops(void) /* flush all buffers */
if (threaded) {
lk = FPLOCK(iop);
- if (rmutex_trylock(lk) != 0)
+ if (cancel_safe_mutex_trylock(lk) != 0)
continue;
}
@@ -651,11 +651,11 @@ _fflush_l_iops(void) /* flush all buffers */
}
}
if (threaded)
- (void) rmutex_unlock(lk);
+ cancel_safe_mutex_unlock(lk);
}
} while ((lp = lp->next) != NULL);
if (threaded)
- (void) _private_mutex_unlock(&_first_link_lock);
+ cancel_safe_mutex_unlock(&_first_link_lock);
return (res);
}
@@ -717,10 +717,10 @@ fclose(FILE *iop)
FUNLOCKFILE(lk);
if (__libc_threaded)
- (void) _private_mutex_lock(&_first_link_lock);
+ cancel_safe_mutex_lock(&_first_link_lock);
fcloses++;
if (__libc_threaded)
- (void) _private_mutex_unlock(&_first_link_lock);
+ cancel_safe_mutex_unlock(&_first_link_lock);
return (res);
}
@@ -755,7 +755,7 @@ close_fd(FILE *iop)
static FILE *
getiop(FILE *fp, rmutex_t *lk, mbstate_t *mb)
{
- if (lk != NULL && rmutex_trylock(lk))
+ if (lk != NULL && cancel_safe_mutex_trylock(lk) != 0)
return (NULL); /* locked: fp in use */
if (fp->_flag == 0) { /* unused */