diff options
Diffstat (limited to 'meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch')
-rw-r--r-- | meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch b/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch deleted file mode 100644 index ac48f68db7..0000000000 --- a/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | Remove use of DIRECT_RECURSIVE_MUTEX_INITIALIZER its not portable | ||
2 | use portable way to initialize recursive mutex using pthread_once() and direct_recursive_mutex_init() | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
6 | Index: DirectFB-1.7.7/lib/direct/os/linux/glibc/mutex.h | ||
7 | =================================================================== | ||
8 | --- DirectFB-1.7.7.orig/lib/direct/os/linux/glibc/mutex.h | ||
9 | +++ DirectFB-1.7.7/lib/direct/os/linux/glibc/mutex.h | ||
10 | @@ -46,7 +46,6 @@ struct __D_DirectMutex { | ||
11 | /**********************************************************************************************************************/ | ||
12 | |||
13 | #define DIRECT_MUTEX_INITIALIZER(name) { PTHREAD_MUTEX_INITIALIZER } | ||
14 | -#define DIRECT_RECURSIVE_MUTEX_INITIALIZER(name) { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP } | ||
15 | |||
16 | #endif | ||
17 | |||
18 | Index: DirectFB-1.7.7/lib/direct/trace.c | ||
19 | =================================================================== | ||
20 | --- DirectFB-1.7.7.orig/lib/direct/trace.c | ||
21 | +++ DirectFB-1.7.7/lib/direct/trace.c | ||
22 | @@ -89,8 +89,15 @@ struct __D_DirectTraceBuffer { | ||
23 | /**************************************************************************************************/ | ||
24 | |||
25 | static DirectLink *buffers; | ||
26 | -static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock); | ||
27 | |||
28 | +static pthread_once_t buffers_lock_init_once = PTHREAD_ONCE_INIT; | ||
29 | +static DirectMutex buffers_lock; | ||
30 | + | ||
31 | +static void | ||
32 | +buffers_lock_init( void ) | ||
33 | +{ | ||
34 | + direct_recursive_mutex_init(&buffers_lock); | ||
35 | +} | ||
36 | /**************************************************************************************************/ | ||
37 | |||
38 | __dfb_no_instrument_function__ | ||
39 | @@ -113,6 +120,7 @@ get_trace_buffer( void ) | ||
40 | |||
41 | D_MAGIC_SET( buffer, DirectTraceBuffer ); | ||
42 | |||
43 | + pthread_once(&buffers_lock_init_once, buffers_lock_init); | ||
44 | direct_mutex_lock( &buffers_lock ); | ||
45 | direct_list_append( &buffers, &buffer->link ); | ||
46 | direct_mutex_unlock( &buffers_lock ); | ||
47 | @@ -138,8 +146,14 @@ typedef struct { | ||
48 | } SymbolTable; | ||
49 | |||
50 | static DirectLink *tables = NULL; | ||
51 | -static DirectMutex tables_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(tables_lock); | ||
52 | +static pthread_once_t tables_lock_init_once = PTHREAD_ONCE_INIT; | ||
53 | +static DirectMutex tables_lock; | ||
54 | |||
55 | +static void | ||
56 | +tables_lock_init( void ) | ||
57 | +{ | ||
58 | + direct_recursive_mutex_init(&tabless_lock); | ||
59 | +} | ||
60 | |||
61 | __dfb_no_instrument_function__ | ||
62 | static void | ||
63 | @@ -370,6 +384,7 @@ direct_trace_lookup_symbol( const char * | ||
64 | Symbol *symbol; | ||
65 | SymbolTable *table; | ||
66 | |||
67 | + pthread_once(&tables_lock_init_once, tables_lock_init); | ||
68 | direct_mutex_lock( &tables_lock ); | ||
69 | |||
70 | table = find_table( filename ); | ||
71 | @@ -514,6 +529,7 @@ direct_trace_print_stacks() | ||
72 | DirectTraceBuffer *b; | ||
73 | DirectTraceBuffer *buffer = get_trace_buffer(); | ||
74 | |||
75 | + pthread_once(&buffers_lock_init_once, buffers_lock_init); | ||
76 | direct_mutex_lock( &buffers_lock ); | ||
77 | |||
78 | if (buffer && buffer->level) | ||
79 | @@ -611,6 +627,7 @@ direct_trace_free_buffer( DirectTraceBuf | ||
80 | D_MAGIC_ASSERT( buffer, DirectTraceBuffer ); | ||
81 | |||
82 | if (buffer->thread) { | ||
83 | + pthread_once(&buffers_lock_init_once, buffers_lock_init); | ||
84 | direct_mutex_lock( &buffers_lock ); | ||
85 | direct_list_remove( &buffers, &buffer->link ); | ||
86 | direct_mutex_unlock( &buffers_lock ); | ||
87 | Index: DirectFB-1.7.7/src/directfb.c | ||
88 | =================================================================== | ||
89 | --- DirectFB-1.7.7.orig/src/directfb.c | ||
90 | +++ DirectFB-1.7.7/src/directfb.c | ||
91 | @@ -99,6 +99,15 @@ const unsigned int directfb_micro_versio | ||
92 | const unsigned int directfb_binary_age = DIRECTFB_BINARY_AGE; | ||
93 | const unsigned int directfb_interface_age = DIRECTFB_INTERFACE_AGE; | ||
94 | |||
95 | +static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT; | ||
96 | +static DirectMutex lock; | ||
97 | + | ||
98 | +static void | ||
99 | +lock_init( void ) | ||
100 | +{ | ||
101 | + direct_recursive_mutex_init(&lock); | ||
102 | +} | ||
103 | + | ||
104 | const char * | ||
105 | DirectFBCheckVersion( unsigned int required_major, | ||
106 | unsigned int required_minor, | ||
107 | @@ -215,8 +224,7 @@ DirectFBCreate( IDirectFB **interface_pt | ||
108 | if (dfb_config->remote.host) | ||
109 | return CreateRemote( dfb_config->remote.host, dfb_config->remote.port, interface_ptr ); | ||
110 | |||
111 | - static DirectMutex lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(lock); | ||
112 | - | ||
113 | + pthread_once(&lock_init_once, lock_init); | ||
114 | direct_mutex_lock( &lock ); | ||
115 | |||
116 | if (!dfb_config->no_singleton && idirectfb_singleton) { | ||