aboutsummaryrefslogtreecommitdiffstats
path: root/libc/bionic/flockfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libc/bionic/flockfile.cpp')
-rw-r--r--libc/bionic/flockfile.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libc/bionic/flockfile.cpp b/libc/bionic/flockfile.cpp
index 3381e8eb9..b73907cbc 100644
--- a/libc/bionic/flockfile.cpp
+++ b/libc/bionic/flockfile.cpp
@@ -36,12 +36,20 @@
// struct __sfileext (see fileext.h).
void flockfile(FILE* fp) {
+ if (!__sdidinit) {
+ __sinit();
+ }
+
if (fp != NULL) {
pthread_mutex_lock(&_FLOCK(fp));
}
}
int ftrylockfile(FILE* fp) {
+ if (!__sdidinit) {
+ __sinit();
+ }
+
// The specification for ftrylockfile() says it returns 0 on success,
// or non-zero on error. So return an errno code directly on error.
if (fp == NULL) {
@@ -52,6 +60,10 @@ int ftrylockfile(FILE* fp) {
}
void funlockfile(FILE* fp) {
+ if (!__sdidinit) {
+ __sinit();
+ }
+
if (fp != NULL) {
pthread_mutex_unlock(&_FLOCK(fp));
}