4 changed files with 0 additions and 96 deletions
@ -1,76 +0,0 @@ |
|||||
/*****************************************************************************
|
|
||||
* poll.c: I/O event multiplexing |
|
||||
***************************************************************************** |
|
||||
* Copyright © 2007 Rémi Denis-Courmont |
|
||||
* $Id$ |
|
||||
* |
|
||||
* Author: Rémi Denis-Courmont |
|
||||
* |
|
||||
* This program is free software; you can redistribute it and/or modify it |
|
||||
* under the terms of the GNU Lesser General Public License as published by |
|
||||
* the Free Software Foundation; either version 2.1 of the License, or |
|
||||
* (at your option) any later version. |
|
||||
* |
|
||||
* This program is distributed in the hope that it will be useful, |
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
* GNU Lesser General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Lesser General Public License |
|
||||
* along with this program; if not, write to the Free Software Foundation, |
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
|
||||
*****************************************************************************/ |
|
||||
|
|
||||
#ifdef HAVE_CONFIG_H |
|
||||
# include "config.h" |
|
||||
#endif |
|
||||
|
|
||||
#include <vlc_common.h> |
|
||||
|
|
||||
#ifdef HAVE_MAEMO |
|
||||
# include <vlc_network.h> |
|
||||
# include <signal.h> |
|
||||
# include <errno.h> |
|
||||
# include <poll.h> |
|
||||
|
|
||||
int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout) |
|
||||
{ |
|
||||
struct timespec tsbuf, *ts; |
|
||||
sigset_t set; |
|
||||
int canc, ret; |
|
||||
|
|
||||
if (timeout != -1) |
|
||||
{ |
|
||||
div_t d = div (timeout, 1000); |
|
||||
tsbuf.tv_sec = d.quot; |
|
||||
tsbuf.tv_nsec = d.rem * 1000000; |
|
||||
ts = &tsbuf; |
|
||||
} |
|
||||
else |
|
||||
ts = NULL; |
|
||||
|
|
||||
pthread_sigmask (SIG_BLOCK, NULL, &set); |
|
||||
sigdelset (&set, SIGRTMIN); |
|
||||
|
|
||||
canc = vlc_savecancel (); |
|
||||
ret = ppoll (fds, nfds, ts, &set); |
|
||||
vlc_restorecancel (canc); |
|
||||
|
|
||||
vlc_testcancel (); |
|
||||
return ret; |
|
||||
} |
|
||||
|
|
||||
#elif defined (HAVE_POLL) |
|
||||
# include <vlc_network.h> |
|
||||
|
|
||||
struct pollfd; |
|
||||
|
|
||||
int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout) |
|
||||
{ |
|
||||
(void)fds; (void)nfds; (void)timeout; |
|
||||
abort (); |
|
||||
} |
|
||||
|
|
||||
#else |
|
||||
# error poll() not implemented! |
|
||||
#endif |
|
||||
Loading…
Reference in new issue