summaryrefslogtreecommitdiff
path: root/meta/packages/glibc/glibc-2.4/local-stdio-lock.diff
blob: 65cd2fd6b4dd991a202b262036b4fbe33a1c7b7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
 bits/stdio-lock.h |   17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

--- glibc-2.7.orig/bits/stdio-lock.h
+++ glibc-2.7/bits/stdio-lock.h
@@ -45,14 +45,23 @@ __libc_lock_define_recursive (typedef, _
 #define _IO_cleanup_region_end(_doit) \
   __libc_cleanup_region_end (_doit)
 
 #if defined _LIBC && !defined NOT_IN_libc
 # define _IO_acquire_lock(_fp) \
-  _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp));      \
-  _IO_flockfile (_fp)
+  { \
+  _IO_FILE *_IO_acquire_lock_file = _fp; \
+  __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \
+  _IO_flockfile (_IO_acquire_lock_file)
+
+# define _IO_acquire_lock_clear_flags2(_fp) \
+  { \
+  _IO_FILE *_IO_acquire_lock_file = _fp; \
+  __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \
+  _IO_flockfile (_IO_acquire_lock_file)
 
 # define _IO_release_lock(_fp) \
-  _IO_funlockfile (_fp);						      \
-  _IO_cleanup_region_end (0)
+  __libc_cleanup_region_end (1); \
+   }
+
 #endif
 
 #endif /* bits/stdio-lock.h */