Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
7553630d
Commit
7553630d
authored
Feb 20, 2010
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do not assume that Open and Close are called in the same thread
parent
809e98a6
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
4 deletions
+17
-4
modules/gui/qt4/qt4.cpp
modules/gui/qt4/qt4.cpp
+17
-4
No files found.
modules/gui/qt4/qt4.cpp
View file @
7553630d
...
...
@@ -271,7 +271,11 @@ static vlc_sem_t ready;
#ifdef Q_WS_X11
static
char
*
x11_display
=
NULL
;
#endif
static
vlc_mutex_t
lock
=
VLC_STATIC_MUTEX
;
static
struct
{
vlc_mutex_t
lock
;
bool
busy
;
}
one
=
{
VLC_STATIC_MUTEX
,
false
};
/*****************************************************************************
* Module callbacks
...
...
@@ -294,7 +298,12 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider )
putenv
(
(
char
*
)
"XLIB_SKIP_ARGB_VISUALS=1"
);
#endif
if
(
vlc_mutex_trylock
(
&
lock
))
bool
busy
;
vlc_mutex_lock
(
&
one
.
lock
);
busy
=
one
.
busy
;
one
.
busy
=
true
;
vlc_mutex_unlock
(
&
one
.
lock
);
if
(
busy
)
{
msg_Err
(
p_this
,
"cannot start Qt4 multiple times"
);
return
VLC_EGENERIC
;
...
...
@@ -312,7 +321,9 @@ static int Open( vlc_object_t *p_this, bool isDialogProvider )
if
(
vlc_clone
(
&
p_sys
->
thread
,
Thread
,
p_intf
,
VLC_THREAD_PRIORITY_LOW
)
)
{
delete
p_sys
;
vlc_mutex_unlock
(
&
lock
);
vlc_mutex_lock
(
&
one
.
lock
);
one
.
busy
=
false
;
vlc_mutex_unlock
(
&
one
.
lock
);
return
VLC_ENOMEM
;
}
...
...
@@ -354,7 +365,9 @@ static void Close( vlc_object_t *p_this )
vlc_join
(
p_sys
->
thread
,
NULL
);
delete
p_sys
;
vlc_mutex_unlock
(
&
lock
);
vlc_mutex_lock
(
&
one
.
lock
);
one
.
busy
=
false
;
vlc_mutex_unlock
(
&
one
.
lock
);
#ifdef Q_WS_X11
free
(
x11_display
);
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment