Hello community, here is the log from the commit of package libfilezilla for openSUSE:Factory checked in at 2018-06-20 15:34:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libfilezilla (Old) and /work/SRC/openSUSE:Factory/.libfilezilla.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfilezilla" Wed Jun 20 15:34:19 2018 rev:18 rq:617867 version:0.12.3 Changes: -------- --- /work/SRC/openSUSE:Factory/libfilezilla/libfilezilla.changes 2018-05-10 15:48:37.942951690 +0200 +++ /work/SRC/openSUSE:Factory/.libfilezilla.new/libfilezilla.changes 2018-06-20 15:34:20.087593434 +0200 @@ -1,0 +2,9 @@ +Tue Jun 19 21:59:57 UTC 2018 - [email protected] + +- update to 0.12.3 + * New features: + - Event handlers can now removed themselves while inside + a callback + - Added fz::query_string::pairs() + +------------------------------------------------------------------- Old: ---- libfilezilla-0.12.2.tar.bz2 New: ---- libfilezilla-0.12.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libfilezilla.spec ++++++ --- /var/tmp/diff_new_pack.RD1Q8c/_old 2018-06-20 15:34:21.843529719 +0200 +++ /var/tmp/diff_new_pack.RD1Q8c/_new 2018-06-20 15:34:21.847529574 +0200 @@ -20,10 +20,10 @@ %define libname %{name}%{major} %define develname %{name}-devel Name: libfilezilla -Version: 0.12.2 +Version: 0.12.3 Release: 0 Summary: C++ library for filezilla -License: GPL-2.0+ +License: GPL-2.0-or-later Group: Development/Libraries/C and C++ Url: https://lib.filezilla-project.org/ Source0: http://download.filezilla-project.org/libfilezilla/%{name}-%{version}.tar.bz2 ++++++ libfilezilla-0.12.2.tar.bz2 -> libfilezilla-0.12.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/NEWS new/libfilezilla-0.12.3/NEWS --- old/libfilezilla-0.12.2/NEWS 2018-05-06 11:47:12.000000000 +0200 +++ new/libfilezilla-0.12.3/NEWS 2018-06-08 17:43:23.000000000 +0200 @@ -1,3 +1,8 @@ +0.12.3 (2018-06-08) + ++ Event handlers can now removed themselves while inside a callback ++ Added fz::query_string::pairs() + 0.12.2 (2018-05-05) + Added parameters to base64_encode to control alphabet and padding diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/configure new/libfilezilla-0.12.3/configure --- old/libfilezilla-0.12.2/configure 2018-05-06 11:22:50.000000000 +0200 +++ new/libfilezilla-0.12.3/configure 2018-06-08 17:43:27.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libfilezilla 0.12.2. +# Generated by GNU Autoconf 2.69 for libfilezilla 0.12.3. # # Report bugs to <[email protected]>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libfilezilla' PACKAGE_TARNAME='libfilezilla' -PACKAGE_VERSION='0.12.2' -PACKAGE_STRING='libfilezilla 0.12.2' +PACKAGE_VERSION='0.12.3' +PACKAGE_STRING='libfilezilla 0.12.3' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='https://lib.filezilla-project.org/' @@ -1413,7 +1413,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libfilezilla 0.12.2 to adapt to many kinds of systems. +\`configure' configures libfilezilla 0.12.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1484,7 +1484,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libfilezilla 0.12.2:";; + short | recursive ) echo "Configuration of libfilezilla 0.12.3:";; esac cat <<\_ACEOF @@ -1621,7 +1621,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libfilezilla configure 0.12.2 +libfilezilla configure 0.12.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2066,7 +2066,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libfilezilla $as_me 0.12.2, which was +It was created by libfilezilla $as_me 0.12.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2932,7 +2932,7 @@ # Define the identity of the package. PACKAGE='libfilezilla' - VERSION='0.12.2' + VERSION='0.12.3' cat >>confdefs.h <<_ACEOF @@ -20908,7 +20908,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libfilezilla $as_me 0.12.2, which was +This file was extended by libfilezilla $as_me 0.12.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20975,7 +20975,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libfilezilla config.status 0.12.2 +libfilezilla config.status 0.12.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/configure.ac new/libfilezilla-0.12.3/configure.ac --- old/libfilezilla-0.12.2/configure.ac 2018-05-06 11:22:43.000000000 +0200 +++ new/libfilezilla-0.12.3/configure.ac 2018-06-08 17:43:23.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([libfilezilla],[0.12.2],[[email protected]],[],[https://lib.filezilla-project.org/]) +AC_INIT([libfilezilla],[0.12.3],[[email protected]],[],[https://lib.filezilla-project.org/]) AC_CONFIG_HEADERS([lib/libfilezilla/private/config.hpp]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/event_loop.cpp new/libfilezilla-0.12.3/lib/event_loop.cpp --- old/libfilezilla-0.12.2/lib/event_loop.cpp 2017-09-29 10:41:58.000000000 +0200 +++ new/libfilezilla-0.12.3/lib/event_loop.cpp 2018-06-08 17:43:23.000000000 +0200 @@ -72,10 +72,14 @@ deadline_ = monotonic_clock(); } - while (active_handler_ == handler) { - l.unlock(); - sleep(duration::from_milliseconds(1)); - l.lock(); + if (active_handler_ == handler) { + if (fz::thread::own_id() != thread_id_) { + while (active_handler_ == handler) { + l.unlock(); + sleep(duration::from_milliseconds(1)); + l.lock(); + } + } } } @@ -164,6 +168,8 @@ void event_loop::entry() { + thread_id_ = thread::own_id(); + monotonic_clock now; scoped_lock l(sync_); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/event_handler.hpp new/libfilezilla-0.12.3/lib/libfilezilla/event_handler.hpp --- old/libfilezilla-0.12.2/lib/libfilezilla/event_handler.hpp 2016-07-20 10:41:55.000000000 +0200 +++ new/libfilezilla-0.12.3/lib/libfilezilla/event_handler.hpp 2018-06-08 17:43:23.000000000 +0200 @@ -67,20 +67,18 @@ * When function returns, handler is not in its callback anymore. * * \warning You _MUST_ call remove_handler no later than inside the destructor of the most derived class. - * - * This may deadlock if a handler removes itself inside its own callback. */ void remove_handler(); /** \brief Called by the event loop in the worker thread with the event to process * * Override in your derived class. - * + * * Consider using \ref dispatch inside your function. */ virtual void operator()(event_base const&) = 0; - /* \brief Sends the passed event asynchronously to the handler. + /** \brief Sends the passed event asynchronously to the handler. * * Can be called from any thread. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/event_loop.hpp new/libfilezilla-0.12.3/lib/libfilezilla/event_loop.hpp --- old/libfilezilla-0.12.2/lib/libfilezilla/event_loop.hpp 2016-04-15 09:52:15.000000000 +0200 +++ new/libfilezilla-0.12.3/lib/libfilezilla/event_loop.hpp 2018-06-08 17:43:23.000000000 +0200 @@ -102,6 +102,8 @@ monotonic_clock deadline_; timer_id next_timer_id_{}; + + thread::id thread_id_{}; }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/thread.hpp new/libfilezilla-0.12.3/lib/libfilezilla/thread.hpp --- old/libfilezilla-0.12.2/lib/libfilezilla/thread.hpp 2017-10-30 18:14:16.000000000 +0100 +++ new/libfilezilla-0.12.3/lib/libfilezilla/thread.hpp 2018-06-08 17:43:23.000000000 +0200 @@ -3,6 +3,10 @@ #include "libfilezilla.hpp" +#ifndef FZ_WINDOWS +#include <thread> +#endif + /** \file * \brief Declares \ref fz::thread "thread" */ @@ -25,6 +29,12 @@ class FZ_PUBLIC_SYMBOL thread { public: +#ifdef FZ_WINDOWS + typedef uint32_t id; +#else + typedef std::thread::id id; +#endif + thread() = default; /** \brief Calls \c std::abort if the thread has not been joined. @@ -58,6 +68,9 @@ */ bool joinable() const; + /// Returns unique id of the thread calling the function + static id own_id(); + protected: /// The thread's entry point, override in your derived class. virtual void entry() = 0; @@ -67,7 +80,6 @@ friend class impl; impl* impl_{}; }; - } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/uri.hpp new/libfilezilla-0.12.3/lib/libfilezilla/uri.hpp --- old/libfilezilla-0.12.2/lib/libfilezilla/uri.hpp 2018-02-16 12:47:48.000000000 +0100 +++ new/libfilezilla-0.12.3/lib/libfilezilla/uri.hpp 2018-06-08 17:43:23.000000000 +0200 @@ -106,8 +106,9 @@ void remove(std::string const& key); std::string& operator[](std::string const& key); -private: + std::map<std::string, std::string, fz::less_insensitive_ascii> const& pairs() const { return segments_; } +private: std::map<std::string, std::string, fz::less_insensitive_ascii> segments_; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/libfilezilla/version.hpp new/libfilezilla-0.12.3/lib/libfilezilla/version.hpp --- old/libfilezilla-0.12.2/lib/libfilezilla/version.hpp 2018-05-06 11:22:53.000000000 +0200 +++ new/libfilezilla-0.12.3/lib/libfilezilla/version.hpp 2018-06-08 17:43:30.000000000 +0200 @@ -9,15 +9,15 @@ #include <tuple> /// \brief Version string of the libfilezilla headers -#define LIBFILEZILLA_VERSION "0.12.2" +#define LIBFILEZILLA_VERSION "0.12.3" #define LIBFILEZILLA_VERSION_MAJOR 0 #define LIBFILEZILLA_VERSION_MINOR 12 -#define LIBFILEZILLA_VERSION_MICRO 2 +#define LIBFILEZILLA_VERSION_MICRO 3 #define LIBFILEZILLA_VERSION_NANO 0 /// \brief Suffix string, e.g. "rc1" -#define LIBFILEZILLA_VERSION_SUFFIX "0.12.2" +#define LIBFILEZILLA_VERSION_SUFFIX "0.12.3" namespace fz { /// \brief Get version string of libfilezilla diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfilezilla-0.12.2/lib/thread.cpp new/libfilezilla-0.12.3/lib/thread.cpp --- old/libfilezilla-0.12.2/lib/thread.cpp 2017-10-30 18:14:16.000000000 +0100 +++ new/libfilezilla-0.12.3/lib/thread.cpp 2018-06-08 17:43:23.000000000 +0200 @@ -105,6 +105,11 @@ } } +thread::id thread::own_id() +{ + return static_cast<id>(GetCurrentThreadId()); +} + #else // Canonical implentation for everyone else @@ -163,6 +168,11 @@ } } +thread::id thread::own_id() +{ + return std::this_thread::get_id(); +} + #endif thread::~thread()
