On Sun, 23 Nov 2014 21:31:33 +0100 Anton Khirnov <[email protected]> wrote:
> Also add no-op fallbacks when threading is disabled. > > This helps keeping the code clean if Libav is compiled for targets > without threading. Since we assume that no threads of any kind are used > in such configurations, doing nothing is ok by definition. > > Based on a patch by wm4 <[email protected]>. > --- > libavutil/thread.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > create mode 100644 libavutil/thread.h > > diff --git a/libavutil/thread.h b/libavutil/thread.h > new file mode 100644 > index 0000000..f025d1d > --- /dev/null > +++ b/libavutil/thread.h > @@ -0,0 +1,50 @@ > +/* > + * This file is part of Libav. > + * > + * Libav 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. > + * > + * Libav 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 Libav; if not, write to the Free Software > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > USA > + */ > + > +#ifndef AVUTIL_THREAD_H > +#define AVUTIL_THREAD_H > + > +#include "config.h" > + > +#if HAVE_PTHREADS || HAVE_W32THREADS > + > +#if HAVE_PTHREADS > +#include <pthread.h> > +#else > +#include <compat/w32pthreads.h> > +#endif > + > +#define AVMutex pthread_mutex_t > + > +#define ff_mutex_init pthread_mutex_init > +#define ff_mutex_lock pthread_mutex_lock > +#define ff_mutex_unlock pthread_mutex_unlock > +#define ff_mutex_destroy pthread_mutex_destroy > + > +#else > + > +#define AVMutex char > + > +#define ff_mutex_init(mutex, attr) (0) > +#define ff_mutex_lock(mutex) (0) > +#define ff_mutex_unlock(mutex) (0) > +#define ff_mutex_destroy(mutex) (0) > + > +#endif > + > +#endif /* AVUTIL_THREAD_H */ Maybe add a comment discouraging the use of the ff_mutex_* symbols unless threads are actually optional. There could be some danger of future developers extending this to a full threading abstraction API, instead of using pthreads properly. (Or am I overthinking things again?) _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
