Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
f442fe0d
Commit
f442fe0d
authored
Aug 16, 2008
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Win32: support cancellation through Asynchronus Procedure Call
parent
f1b595f7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
1 deletion
+12
-1
src/misc/threads.c
src/misc/threads.c
+12
-1
No files found.
src/misc/threads.c
View file @
f442fe0d
...
@@ -568,6 +568,15 @@ int vlc_clone (vlc_thread_t *p_handle, void * (*entry) (void *), void *data,
...
@@ -568,6 +568,15 @@ int vlc_clone (vlc_thread_t *p_handle, void * (*entry) (void *), void *data,
return
ret
;
return
ret
;
}
}
#if defined (WIN32)
/* APC procedure for thread cancellation */
static
void
CALLBACK
vlc_cancel_self
(
ULONG_PTR
dummy
)
{
(
void
)
dummy
;
vlc_control_cancel
(
VLC_DO_CANCEL
);
}
#endif
/**
/**
* Marks a thread as cancelled. Next time the target thread reaches a
* Marks a thread as cancelled. Next time the target thread reaches a
* cancellation point (while not having disabled cancellation), it will
* cancellation point (while not having disabled cancellation), it will
...
@@ -579,6 +588,8 @@ void vlc_cancel (vlc_thread_t thread_id)
...
@@ -579,6 +588,8 @@ void vlc_cancel (vlc_thread_t thread_id)
{
{
#if defined (LIBVLC_USE_PTHREAD)
#if defined (LIBVLC_USE_PTHREAD)
pthread_cancel
(
thread_id
);
pthread_cancel
(
thread_id
);
#elif defined (WIN32)
QueueUserAPC
(
vlc_cancel_self
,
thread_id
->
handle
,
0
);
#endif
#endif
}
}
...
@@ -864,7 +875,7 @@ void vlc_control_cancel (int cmd, ...)
...
@@ -864,7 +875,7 @@ void vlc_control_cancel (int cmd, ...)
{
{
#ifdef LIBVLC_USE_PTHREAD
#ifdef LIBVLC_USE_PTHREAD
(
void
)
cmd
;
(
void
)
cmd
;
a
bort
(
);
a
ssert
(
0
);
#else
#else
va_list
ap
;
va_list
ap
;
...
...
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