[vlc-devel] [PATCH] vlc_poll: remove

Rémi Denis-Courmont remi at remlab.net
Sun Jan 22 18:21:16 CET 2012


Strictly speaking this creates a circular dependency between libcompat and 
libvlccore. This smells like it will bite sooner or later.

On Sunday 22 January 2012, Rafaël Carré wrote:
> ---
>  compat/poll.c         |   21 ++++++++++++++++++++-
>  include/vlc_fixups.h  |    2 +-
>  include/vlc_network.h |    4 ----
>  src/os2/thread.c      |   16 ----------------
>  src/win32/thread.c    |   16 ----------------
>  5 files changed, 21 insertions(+), 38 deletions(-)
> 
> diff --git a/compat/poll.c b/compat/poll.c
> index 0a27b71..1168983 100644
> --- a/compat/poll.c
> +++ b/compat/poll.c
> @@ -37,7 +37,7 @@
>  # include <sys/select.h>
>  #endif
> 
> -int (poll) (struct pollfd *fds, unsigned nfds, int timeout)
> +static int (real_poll) (struct pollfd *fds, unsigned nfds, int timeout)
>  {
>  #ifdef WIN32
>      size_t setsize = sizeof (fd_set) + nfds * sizeof (SOCKET);
> @@ -129,3 +129,22 @@ int (poll) (struct pollfd *fds, unsigned nfds, int
> timeout) #endif
>      return val;
>  }
> +
> +/* Cancelable poll */
> +extern void vlc_testcancel(void);
> +
> +int (poll) (struct pollfd *fds, unsigned nfds, int timeout)
> +{
> +    vlc_testcancel ();
> +
> +    while (timeout > 50)
> +    {
> +        int val = real_poll (fds, nfds, timeout);
> +        if (val != 0)
> +            return val;
> +        timeout -= 50;
> +        vlc_testcancel ();
> +    }
> +
> +    return real_poll (fds, nfds, timeout);
> +}
> diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
> index b5884f4..9b83cf2 100644
> --- a/include/vlc_fixups.h
> +++ b/include/vlc_fixups.h
> @@ -275,7 +275,7 @@ struct pollfd
>  };
>  #endif
>  #ifndef HAVE_POLL
> -# define poll(a, b, c) vlc_poll(a, b, c)
> +int poll(struct pollfd *, unsigned, int);
>  #endif
> 
>  #ifndef HAVE_IF_NAMEINDEX
> diff --git a/include/vlc_network.h b/include/vlc_network.h
> index c1769b1..431dfd5 100644
> --- a/include/vlc_network.h
> +++ b/include/vlc_network.h
> @@ -160,10 +160,6 @@ VLC_API ssize_t net_Printf( vlc_object_t *p_this, int
> fd, const v_socket_t *, co VLC_API ssize_t net_vaPrintf( vlc_object_t
> *p_this, int fd, const v_socket_t *, const char *psz_fmt, va_list args );
> #define net_vaPrintf(a,b,c,d,e) net_vaPrintf(VLC_OBJECT(a),b,c,d,e)
> 
> -struct pollfd;
> -VLC_API int vlc_poll(struct pollfd *fds, unsigned nfds, int timeout);
> -
> -
>  #ifdef WIN32
>  /* Microsoft: same semantic, same value, different name... go figure */
>  # define SHUT_RD SD_RECEIVE
> diff --git a/src/os2/thread.c b/src/os2/thread.c
> index e92ef20..3f08658 100644
> --- a/src/os2/thread.c
> +++ b/src/os2/thread.c
> @@ -805,22 +805,6 @@ void vlc_control_cancel (int cmd, ...)
>      va_end (ap);
>  }
> 
> -int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout)
> -{
> -    vlc_testcancel ();
> -
> -    while (timeout > 50)
> -    {
> -        int val = poll (fds, nfds, timeout);
> -        if (val != 0)
> -            return val;
> -        timeout -= 50;
> -        vlc_testcancel ();
> -    }
> -
> -    return poll (fds, nfds, timeout);
> -}
> -
>  #define Q2LL( q )   ( *( long long * )&( q ))
> 
>  /*** Clock ***/
> diff --git a/src/win32/thread.c b/src/win32/thread.c
> index 0cd833d..cd4c454 100644
> --- a/src/win32/thread.c
> +++ b/src/win32/thread.c
> @@ -777,22 +777,6 @@ void vlc_control_cancel (int cmd, ...)
>      va_end (ap);
>  }
> 
> -int vlc_poll (struct pollfd *fds, unsigned nfds, int timeout)
> -{
> -    vlc_testcancel ();
> -
> -    while (timeout > 50)
> -    {
> -        int val = poll (fds, nfds, timeout);
> -        if (val != 0)
> -            return val;
> -        timeout -= 50;
> -        vlc_testcancel ();
> -    }
> -
> -    return poll (fds, nfds, timeout);
> -}
> -
>  /*** Clock ***/
>  mtime_t mdate (void)
>  {
-- 
Rémi Denis-Courmont
http://www.remlab.info



More information about the vlc-devel mailing list