Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
497f8a00
Commit
497f8a00
authored
Oct 12, 2008
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merge msg bank and queue, remove duplicated lock
parent
9226863d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
24 deletions
+8
-24
src/libvlc.h
src/libvlc.h
+4
-10
src/misc/messages.c
src/misc/messages.c
+4
-14
No files found.
src/libvlc.h
View file @
497f8a00
...
@@ -70,7 +70,10 @@ uint32_t CPUCapabilities( void );
...
@@ -70,7 +70,10 @@ uint32_t CPUCapabilities( void );
* Message/logging stuff
* Message/logging stuff
*/
*/
typedef
struct
msg_queue_t
/**
* Store all data required by messages interfaces.
*/
typedef
struct
msg_bank_t
{
{
/** Message queue lock */
/** Message queue lock */
vlc_mutex_t
lock
;
vlc_mutex_t
lock
;
...
@@ -89,15 +92,6 @@ typedef struct msg_queue_t
...
@@ -89,15 +92,6 @@ typedef struct msg_queue_t
#ifdef UNDER_CE
#ifdef UNDER_CE
FILE
*
logfile
;
FILE
*
logfile
;
#endif
#endif
}
msg_queue_t
;
/**
* Store all data required by messages interfaces.
*/
typedef
struct
msg_bank_t
{
vlc_mutex_t
lock
;
msg_queue_t
queue
;
}
msg_bank_t
;
}
msg_bank_t
;
void
msg_Create
(
libvlc_int_t
*
);
void
msg_Create
(
libvlc_int_t
*
);
...
...
src/misc/messages.c
View file @
497f8a00
...
@@ -75,16 +75,14 @@ static uintptr_t banks = 0;
...
@@ -75,16 +75,14 @@ static uintptr_t banks = 0;
# define vlc_va_copy(dest,src) (dest)=(src)
# define vlc_va_copy(dest,src) (dest)=(src)
#endif
#endif
#define QUEUE priv->msg_bank.queue
#define QUEUE priv->msg_bank
#define LOCK_BANK vlc_mutex_lock( &priv->msg_bank.lock );
#define UNLOCK_BANK vlc_mutex_unlock( &priv->msg_bank.lock );
/*****************************************************************************
/*****************************************************************************
* Local prototypes
* Local prototypes
*****************************************************************************/
*****************************************************************************/
static
void
QueueMsg
(
vlc_object_t
*
,
int
,
const
char
*
,
static
void
QueueMsg
(
vlc_object_t
*
,
int
,
const
char
*
,
const
char
*
,
va_list
);
const
char
*
,
va_list
);
static
void
FlushMsg
(
msg_
queue
_t
*
);
static
void
FlushMsg
(
msg_
bank
_t
*
);
static
void
PrintMsg
(
vlc_object_t
*
,
msg_item_t
*
);
static
void
PrintMsg
(
vlc_object_t
*
,
msg_item_t
*
);
static
vlc_mutex_t
msg_stack_lock
=
VLC_STATIC_MUTEX
;
static
vlc_mutex_t
msg_stack_lock
=
VLC_STATIC_MUTEX
;
...
@@ -96,7 +94,6 @@ static vlc_mutex_t msg_stack_lock = VLC_STATIC_MUTEX;
...
@@ -96,7 +94,6 @@ static vlc_mutex_t msg_stack_lock = VLC_STATIC_MUTEX;
void
msg_Create
(
libvlc_int_t
*
p_libvlc
)
void
msg_Create
(
libvlc_int_t
*
p_libvlc
)
{
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_libvlc
);
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_libvlc
);
vlc_mutex_init
(
&
priv
->
msg_bank
.
lock
);
vlc_mutex_init
(
&
QUEUE
.
lock
);
vlc_mutex_init
(
&
QUEUE
.
lock
);
vlc_dictionary_init
(
&
priv
->
msg_enabled_objects
,
0
);
vlc_dictionary_init
(
&
priv
->
msg_enabled_objects
,
0
);
priv
->
msg_all_objects_enabled
=
true
;
priv
->
msg_all_objects_enabled
=
true
;
...
@@ -190,7 +187,6 @@ void msg_Destroy (libvlc_int_t *p_libvlc)
...
@@ -190,7 +187,6 @@ void msg_Destroy (libvlc_int_t *p_libvlc)
/* Destroy lock */
/* Destroy lock */
vlc_mutex_destroy
(
&
QUEUE
.
lock
);
vlc_mutex_destroy
(
&
QUEUE
.
lock
);
vlc_mutex_destroy
(
&
priv
->
msg_bank
.
lock
);
}
}
/**
/**
...
@@ -204,7 +200,6 @@ msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this )
...
@@ -204,7 +200,6 @@ msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this )
if
(
p_sub
==
NULL
)
if
(
p_sub
==
NULL
)
return
NULL
;
return
NULL
;
LOCK_BANK
;
vlc_mutex_lock
(
&
QUEUE
.
lock
);
vlc_mutex_lock
(
&
QUEUE
.
lock
);
TAB_APPEND
(
QUEUE
.
i_sub
,
QUEUE
.
pp_sub
,
p_sub
);
TAB_APPEND
(
QUEUE
.
i_sub
,
QUEUE
.
pp_sub
,
p_sub
);
...
@@ -215,7 +210,6 @@ msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this )
...
@@ -215,7 +210,6 @@ msg_subscription_t *__msg_Subscribe( vlc_object_t *p_this )
p_sub
->
p_lock
=
&
QUEUE
.
lock
;
p_sub
->
p_lock
=
&
QUEUE
.
lock
;
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
UNLOCK_BANK
;
return
p_sub
;
return
p_sub
;
}
}
...
@@ -227,7 +221,6 @@ void __msg_Unsubscribe( vlc_object_t *p_this, msg_subscription_t *p_sub )
...
@@ -227,7 +221,6 @@ void __msg_Unsubscribe( vlc_object_t *p_this, msg_subscription_t *p_sub )
{
{
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_this
->
p_libvlc
);
libvlc_priv_t
*
priv
=
libvlc_priv
(
p_this
->
p_libvlc
);
LOCK_BANK
;
vlc_mutex_lock
(
&
QUEUE
.
lock
);
vlc_mutex_lock
(
&
QUEUE
.
lock
);
for
(
int
j
=
0
;
j
<
QUEUE
.
i_sub
;
j
++
)
for
(
int
j
=
0
;
j
<
QUEUE
.
i_sub
;
j
++
)
{
{
...
@@ -238,7 +231,6 @@ void __msg_Unsubscribe( vlc_object_t *p_this, msg_subscription_t *p_sub )
...
@@ -238,7 +231,6 @@ void __msg_Unsubscribe( vlc_object_t *p_this, msg_subscription_t *p_sub )
}
}
}
}
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
vlc_mutex_unlock
(
&
QUEUE
.
lock
);
UNLOCK_BANK
;
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -311,7 +303,7 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
...
@@ -311,7 +303,7 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
va_list
args
;
va_list
args
;
msg_item_t
*
p_item
=
NULL
;
/* pointer to message */
msg_item_t
*
p_item
=
NULL
;
/* pointer to message */
msg_item_t
item
;
/* message in case of a full queue */
msg_item_t
item
;
/* message in case of a full queue */
msg_
queue_t
*
p_queue
;
msg_
bank_t
*
p_queue
;
#if !defined(HAVE_VASPRINTF) || defined(__APPLE__) || defined(SYS_BEOS)
#if !defined(HAVE_VASPRINTF) || defined(__APPLE__) || defined(SYS_BEOS)
int
i_size
=
strlen
(
psz_format
)
+
INTF_MAX_MSG_SIZE
;
int
i_size
=
strlen
(
psz_format
)
+
INTF_MAX_MSG_SIZE
;
...
@@ -446,7 +438,6 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
...
@@ -446,7 +438,6 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
psz_str
[
i_size
-
1
]
=
0
;
/* Just in case */
psz_str
[
i_size
-
1
]
=
0
;
/* Just in case */
#endif
#endif
LOCK_BANK
;
p_queue
=
&
QUEUE
;
p_queue
=
&
QUEUE
;
vlc_mutex_lock
(
&
p_queue
->
lock
);
vlc_mutex_lock
(
&
p_queue
->
lock
);
...
@@ -516,7 +507,6 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
...
@@ -516,7 +507,6 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
}
}
vlc_mutex_unlock
(
&
p_queue
->
lock
);
vlc_mutex_unlock
(
&
p_queue
->
lock
);
UNLOCK_BANK
;
}
}
/* following functions are local */
/* following functions are local */
...
@@ -527,7 +517,7 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
...
@@ -527,7 +517,7 @@ static void QueueMsg( vlc_object_t *p_this, int i_type, const char *psz_module,
* Print all messages remaining in queue. MESSAGE QUEUE MUST BE LOCKED, since
* Print all messages remaining in queue. MESSAGE QUEUE MUST BE LOCKED, since
* this function does not check the lock.
* this function does not check the lock.
*****************************************************************************/
*****************************************************************************/
static
void
FlushMsg
(
msg_
queue
_t
*
p_queue
)
static
void
FlushMsg
(
msg_
bank
_t
*
p_queue
)
{
{
int
i_index
,
i_start
,
i_stop
;
int
i_index
,
i_start
,
i_stop
;
...
...
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