aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics/fget.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-11-28 08:16:33 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2005-11-28 08:16:33 +0100
commit401cd90a905d8cf4ad2339da824e13943912a89c (patch)
treebff7ffdea06ed9c1aad7564d6cf64222f1e7e9ff /libgfortran/intrinsics/fget.c
parent07a3df01000ca438d63254fc86a0d8aaf8db6f7d (diff)
downloadgcc-401cd90a905d8cf4ad2339da824e13943912a89c.zip
gcc-401cd90a905d8cf4ad2339da824e13943912a89c.tar.gz
gcc-401cd90a905d8cf4ad2339da824e13943912a89c.tar.bz2
ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
* intrinsics/ftell.c (ftell, FTELL_SUB): Add unlock_unit call. * intrinsics/fget.c (fgetc, fputs): Likewise. * intrinsics/tty.c (ttynam): Likewise. From-SVN: r107595
Diffstat (limited to 'libgfortran/intrinsics/fget.c')
-rw-r--r--libgfortran/intrinsics/fget.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libgfortran/intrinsics/fget.c b/libgfortran/intrinsics/fget.c
index 8eb96e3..5c87ae6 100644
--- a/libgfortran/intrinsics/fget.c
+++ b/libgfortran/intrinsics/fget.c
@@ -54,6 +54,7 @@ PREFIX(fgetc) (const int * unit, char * c, gfc_charlen_type c_len)
s = 1;
memset (c, ' ', c_len);
ret = sread (u->s, c, &s);
+ unlock_unit (u);
if (ret != 0)
return ret;
@@ -118,13 +119,16 @@ PREFIX(fputc) (const int * unit, char * c,
gfc_charlen_type c_len __attribute__((unused)))
{
size_t s;
+ int ret;
gfc_unit * u = find_unit (*unit);
if (u == NULL)
return -1;
s = 1;
- return swrite (u->s, c, &s);
+ ret = swrite (u->s, c, &s);
+ unlock_unit (u);
+ return ret;
}