浏览代码

use lighter internal stdio lock in getopt error printing

the public flockfile interface is significantly heavier because it has
to handle the possibility of caller returning or thread exiting while
holding the lock.
Rich Felker 6 年之前
父节点
当前提交
cf7db2427f
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      src/misc/getopt.c

+ 3 - 2
src/misc/getopt.c

@@ -5,6 +5,7 @@
 #include <stdlib.h>
 #include "libc.h"
 #include "locale_impl.h"
+#include "stdio_impl.h"
 
 char *optarg;
 int optind=1, opterr=1, optopt, __optpos, __optreset=0;
@@ -16,12 +17,12 @@ void __getopt_msg(const char *a, const char *b, const char *c, size_t l)
 {
 	FILE *f = stderr;
 	b = __lctrans_cur(b);
-	flockfile(f);
+	FLOCK(f);
 	fputs(a, f)>=0
 	&& fwrite(b, strlen(b), 1, f)
 	&& fwrite(c, 1, l, f)==l
 	&& putc('\n', f);
-	funlockfile(f);
+	FUNLOCK(f);
 }
 
 int getopt(int argc, char * const argv[], const char *optstring)