ed0caeeaef
The sdl2 package is forked from upstream Alpine and: 1) adds directfb video support 2) adds a patch to work around a compile issue when directfb is enabled
47 lines
1.7 KiB
Diff
47 lines
1.7 KiB
Diff
--- a/lib/direct/os/linux/glibc/mutex.h
|
|
+++ b/lib/direct/os/linux/glibc/mutex.h
|
|
@@ -46,7 +46,6 @@ struct __D_DirectMutex {
|
|
/**********************************************************************************************************************/
|
|
|
|
#define DIRECT_MUTEX_INITIALIZER(name) { PTHREAD_MUTEX_INITIALIZER }
|
|
-#define DIRECT_RECURSIVE_MUTEX_INITIALIZER(name) { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP }
|
|
|
|
#endif
|
|
|
|
--- a/lib/direct/trace.c
|
|
+++ b/lib/direct/trace.c
|
|
@@ -89,7 +89,7 @@ struct __D_DirectTraceBuffer {
|
|
/**************************************************************************************************/
|
|
|
|
static DirectLink *buffers;
|
|
-static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock);
|
|
+static DirectMutex buffers_lock = DIRECT_MUTEX_INITIALIZER(buffers_lock);
|
|
|
|
/**************************************************************************************************/
|
|
|
|
--- a/src/directfb.c
|
|
+++ b/src/directfb.c
|
|
@@ -163,6 +163,15 @@ DirectFBSetOption( const char *name, const char *value )
|
|
return DFB_OK;
|
|
}
|
|
|
|
+
|
|
+static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT;
|
|
+static DirectMutex lock;
|
|
+
|
|
+static void lock_init(void)
|
|
+{
|
|
+ direct_recursive_mutex_init(&lock);
|
|
+}
|
|
+
|
|
/*
|
|
* Programs have to call this to get the super interface
|
|
* which is needed to access other functions
|
|
@@ -215,7 +224,7 @@ DirectFBCreate( IDirectFB **interface_ptr )
|
|
if (dfb_config->remote.host)
|
|
return CreateRemote( dfb_config->remote.host, dfb_config->remote.port, interface_ptr );
|
|
|
|
- static DirectMutex lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(lock);
|
|
+ pthread_once(&lock_init_once, lock_init);
|
|
|
|
direct_mutex_lock( &lock );
|