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
e1ad2bf9
Commit
e1ad2bf9
authored
Jan 23, 2011
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PVR: don't choke on EINTR and fix/remove polling timer
parent
0169865b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
3 additions
and
22 deletions
+3
-22
modules/access/pvr.c
modules/access/pvr.c
+3
-22
No files found.
modules/access/pvr.c
View file @
e1ad2bf9
...
...
@@ -34,13 +34,13 @@
#include <vlc_access.h>
#include <vlc_fs.h>
#include <vlc_url.h>
#include <vlc_network.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/types.h>
#include <sys/ioctl.h>
#include <sys/poll.h>
#ifdef HAVE_NEW_LINUX_VIDEODEV2_H
# ifdef VIDEODEV2_H_FILE
# include VIDEODEV2_H_FILE
...
...
@@ -905,31 +905,12 @@ static void Close( vlc_object_t * p_this )
static
ssize_t
Read
(
access_t
*
p_access
,
uint8_t
*
p_buffer
,
size_t
i_len
)
{
access_sys_t
*
p_sys
=
(
access_sys_t
*
)
p_access
->
p_sys
;
struct
pollfd
ufd
;
int
i_ret
;
ufd
.
fd
=
p_sys
->
i_fd
;
ufd
.
events
=
POLLIN
;
ssize_t
i_ret
;
if
(
p_access
->
info
.
b_eof
)
return
0
;
do
{
if
(
!
vlc_object_alive
(
p_access
)
)
return
0
;
ufd
.
revents
=
0
;
}
while
(
(
i_ret
=
poll
(
&
ufd
,
1
,
500
)
)
==
0
);
if
(
i_ret
<
0
)
{
msg_Err
(
p_access
,
"Polling error (%m)."
);
return
-
1
;
}
i_ret
=
read
(
p_sys
->
i_fd
,
p_buffer
,
i_len
);
i_ret
=
net_Read
(
p_access
,
p_sys
->
i_fd
,
NULL
,
p_buffer
,
i_len
,
false
);
if
(
i_ret
==
0
)
{
p_access
->
info
.
b_eof
=
true
;
...
...
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