// -*- C++ -*- // Boost general library 'format' --------------------------- // See http://www.boost.org for updates, documentation, and revision history. // (C) Samuel Krempp 2001 // krempp@crans.ens-cachan.fr // Permission to copy, use, modify, sell and // distribute this software is granted provided this copyright notice appears // in all copies. This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // ideas taken from Rüdiger Loos's format class // and Karl Nelson's ofstream (also took its parsing code as basis for printf parsing) // ------------------------------------------------------------------------------ // internals_fwd.hpp : forward declarations, for internal headers // ------------------------------------------------------------------------------ #ifndef BOOST_FORMAT_INTERNAL_FWD_HPP #define BOOST_FORMAT_INTERNAL_FWD_HPP #include "boost/format/format_fwd.hpp" namespace boost { namespace io { namespace detail { struct stream_format_state; struct format_item; } namespace detail { // these functions were intended as methods, // but MSVC have problems with template member functions : // defined in format_implementation.hpp : template basic_format& modify_item_body( basic_format& self, int itemN, const T& manipulator); template basic_format& bind_arg_body( basic_format& self, int argN, const T& val); template void apply_manip_body( stream_format_state& self, T manipulator); // argument feeding (defined in feed_args.hpp ) : template void distribute(basic_format& self, T x); template basic_format& feed(basic_format& self, T x); } // namespace detail } // namespace io } // namespace boost #endif // BOOST_FORMAT_INTERNAL_FWD_HPP href='/guix/log/?id=40d75ef875b0ea58ab61b5ca2b2d4c32e9027ced'>root/tests/cache.scm
AgeCommit message (Expand)Author
2024-08-21cache: Avoid cache cleanup storms from concurrent processes....Reported by Christopher Baines <guix@cbaines.net>. * guix/cache.scm (maybe-remove-expired-cache-entries): Define ‘expiry-port’; create it with ‘lock-file’. Change ‘last-expiry-date’ accordingly. Write timestamp straight to ‘expiry-port’. * tests/cache.scm ("maybe-remove-expired-cache-entries, cleanup needed but lock taken"): New test. Change-Id: I22441d9d2c4a339d3d3878de131864db5a0ae826 Ludovic Courtès
2022-06-04cache: Catch invalid 'last-expiry-cleanup'....Fixes <http://issues.guix.gnu.org/55638>. * guix/cache.scm (maybe-remove-expired-cache-entries)[last-expiry-date]: Use 'get-string-all' + 'string->number' instead of 'read'; ignore invalid numbers. * tests/cache.scm ("maybe-remove-expired-cache-entries, empty cache") ("maybe-remove-expired-cache-entries, corrupted cache"): New tests. Co-authored-by: Ludovic Courtès <ludo@gnu.org> zimoun