Created
April 27, 2020 11:22
-
-
Save nobleread/3831163af471d2ffdc20b033778d4477 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#17 Source "/path/ozo/transaction.h", line 57, in operator()<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> >, ozo::none_t, spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >&> [0x471ab1] | |
54: using namespace ozo::literals; | |
55: return async_initiate<CompletionToken, handler_signature<T>>( | |
56: impl::initiate_async_end_transaction{}, token, | |
> 57: std::move(transaction), "COMMIT"_SQL, t); | |
58: } | |
59: | |
60: template <typename... Ts, typename CompletionToken> | |
#16 Source "/path/ozo/asio.h", line 23, in async_initiate<spawn::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >&, void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >), ozo::impl::initiate_async_end_transaction, ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t&> [0x471a01] | |
20: CompletionToken& token, Args&&... args) { | |
21: async_completion<CompletionToken, Signature> completion(token); | |
22: | |
> 23: initiation(std::move(completion.completion_handler), std::forward<Args>(args)...); | |
24: | |
25: return completion.result.get(); | |
26: } | |
#15 Source "/path/ozo/impl/async_end_transaction.h", line 49, in operator()<spawn::detail::coro_handler<boost::asio::executor_binder<void (*)(), boost::asio::executor>, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> > >, ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t&> [0x472ab2] | |
46: struct initiate_async_end_transaction { | |
47: template <typename Handler, typename ...Args> | |
48: constexpr void operator()(Handler&& h, Args&& ...args) const { | |
> 49: async_end_transaction(std::forward<Args>(args)..., std::forward<Handler>(h)); | |
50: } | |
51: }; | |
#14 Source "/path/ozo/impl/async_end_transaction.h", line 42, in async_end_transaction<ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t, spawn::detail::coro_handler<boost::asio::executor_binder<void (*)(), boost::asio::executor>, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> > > > [0x473af0] | |
39: template <typename T, typename Query, typename TimeConstraint, typename Handler> | |
40: Require<ConnectionProvider<T>> async_end_transaction(T&& provider, Query&& query, | |
41: TimeConstraint t, Handler&& handler) { | |
> 42: make_async_end_transaction_op(std::forward<Handler>(handler)) | |
43: .perform(std::forward<T>(provider), std::forward<Query>(query), t); | |
44: } | |
#13 Source "/path/ozo/impl/async_end_transaction.h", line 17, in perform<ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t> [0x4747ec] | |
14: void perform(T&& provider, Query&& query, TimeConstraint t) { | |
15: static_assert(Connection<T>, "T is not a Connection"); | |
16: static_assert(ozo::TimeConstraint<TimeConstraint>, "should model TimeConstraint concept"); | |
> 17: async_execute(std::forward<T>(provider), std::forward<Query>(query), t, std::move(*this)); | |
18: } | |
19: | |
20: template <typename Connection, typename Options> | |
#12 Source "/path/ozo/impl/async_execute.h", line 13, in async_execute<ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t, ozo::impl::async_end_transaction_op<spawn::detail::coro_handler<boost::asio::executor_binder<void (*)(), boost::asio::executor>, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> > > > > [0x475e3b] | |
10: static_assert(ConnectionProvider<P>, "is not a ConnectionProvider"); | |
11: static_assert(BinaryQueryConvertible<Q>, "query should be convertible to the binary_query"); | |
12: static_assert(ozo::TimeConstraint<TimeConstraint>, "should model TimeConstraint concept"); | |
> 13: async_get_connection(std::forward<P>(provider), deadline(t), | |
14: async_request_op { | |
15: std::forward<Q>(query), | |
16: deadline(t), | |
#11 Source "/path/ozo/connection.h", line 682, in async_get_connection<ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::none_t, ozo::impl::async_request_op<ozo::none_t, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t, ozo::impl::async_end_transaction_op<spawn::detail::coro_handler<boost::asio::executor_binder<void (*)(), boost::asio::executor>, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> > > > > > [0x476c34] | |
679: apply(std::forward<Provider>(p), t, std::forward<Handler>(h))) { | |
680: static_assert(ozo::TimeConstraint<TimeConstraint>, "should model TimeConstraint concept"); | |
681: return async_get_connection_impl<std::decay_t<Provider>, TimeConstraint>:: | |
> 682: apply(std::forward<Provider>(p), t, std::forward<Handler>(h)); | |
683: } | |
684: | |
685: namespace detail { | |
#10 Source "/path/ozo/connection.h", line 592, in apply<ozo::impl::transaction<std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >, boost::hana::detail::map_impl<boost::hana::detail::hash_table<>, boost::hana::basic_tuple<> > >, ozo::none_t, ozo::impl::async_request_op<ozo::none_t, ozo::query_builder<boost::hana::tuple<ozo::query_element<boost::hana::string<'C', 'O', 'M', 'M', 'I', 'T'>, ozo::query_text_tag> > >, ozo::none_t, ozo::impl::async_end_transaction_op<spawn::detail::coro_handler<boost::asio::executor_binder<void (*)(), boost::asio::executor>, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> > > > > > [0x477dc0] | |
589: template <typename Conn, typename TimeConstraint, typename Handler> | |
590: static constexpr void apply(Conn&& c, TimeConstraint, Handler&& h) { | |
591: static_assert(ozo::TimeConstraint<TimeConstraint>, "should model TimeConstraint concept"); | |
> 592: unwrap_connection(c).set_error_context(); | |
593: auto ex = unwrap_connection(c).get_executor(); | |
594: asio::dispatch(ex, detail::bind(std::forward<Handler>(h), error_code{}, std::forward<Conn>(c))); | |
595: } | |
#9 Source "/path/ozo/connection_pool.h", line 166, in set_error_context [0x476400] | |
163: * @param v --- new error context. | |
164: */ | |
165: void set_error_context(error_context_type v = {}) { | |
> 166: ozo::unwrap(rep_).set_error_context(std::move(v)); | |
167: } | |
168: | |
169: /** | |
#8 Source "/path/ozo/core/unwrap.h", line 59, in unwrap<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >&> [0x47413d] | |
56: template <typename T> | |
57: constexpr decltype(auto) unwrap(T&& v) noexcept( | |
58: noexcept(unwrap_impl<std::decay_t<T>>::apply(std::forward<T>(v)))) { | |
> 59: return unwrap_impl<std::decay_t<T>>::apply(std::forward<T>(v)); | |
60: } | |
61: | |
62: template <typename T> | |
#7 Source "/path/ozo/impl/connection_pool.h", line 106, in apply<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >&> [0x47411b] | |
103: struct unwrap_impl<yamail::resource_pool::handle<V>> { | |
104: template <typename T> | |
105: static constexpr decltype(auto) apply(T&& handle) { | |
> 106: return *handle; | |
107: } | |
108: }; | |
#6 Source "/path/resource_pool/handle.hpp", line 44, in operator* [0x474e33] | |
41: const value_type& get() const; | |
42: value_type *operator ->() { return &get(); } | |
43: const value_type *operator ->() const { return &get(); } | |
> 44: value_type &operator *() { return get(); } | |
45: const value_type &operator *() const { return get(); } | |
46: | |
47: void recycle(); | |
#5 Source "/path/resource_pool/handle.hpp", line 91, in get [0x4761a3] | |
89: template <class P> | |
90: typename handle<P>::value_type& handle<P>::get() { | |
> 91: assert_not_empty(); | |
92: return *_resource_it.get()->value; | |
93: } | |
#4 Source "/path/resource_pool/handle.hpp", line 124, in assert_not_empty [0x476d5c] | |
122: template <class P> | |
123: void handle<P>::assert_not_empty() const { | |
> 124: if (empty()) { | |
125: throw error::empty_handle(); | |
126: } | |
127: } | |
#3 Source "/path/resource_pool/handle.hpp", line 39, in empty [0x477f7d] | |
36: handle& operator =(handle&& other); | |
37: | |
38: bool unusable() const noexcept { return !static_cast<bool>(_resource_it); } | |
> 39: bool empty() const noexcept { return unusable() || !_resource_it.get()->value; } | |
40: value_type& get(); | |
41: const value_type& get() const; | |
42: value_type *operator ->() { return &get(); } | |
#2 | Source "", line 38, in operator bool | |
Source "/path/boost/optional/optional.hpp", line 1448, in unusable [0x478d63] | |
1446: bool operator!() const BOOST_NOEXCEPT { return !this->is_initialized() ; } | |
1447: | |
>1448: BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT() | |
1449: } ; | |
1450: | |
1451: } // namespace boost | |
#1 Source "/path/boost/optional/optional.hpp", line 1446, in operator! [0x47abeb] | |
1444: bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; } | |
1445: | |
>1446: bool operator!() const BOOST_NOEXCEPT { return !this->is_initialized() ; } | |
1447: | |
1448: BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT() | |
1449: } ; | |
#0 Source "/path/boost/optional/optional.hpp", line 396, in is_initialized [0x477fc0] | |
393: pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; } | |
394: pointer_type get_ptr() { return m_initialized ? get_ptr_impl() : 0 ; } | |
395: | |
> 396: bool is_initialized() const BOOST_NOEXCEPT { return m_initialized ; } | |
397: | |
398: protected : | |
Segmentation fault (Address not mapped to object [0x20]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment