Boost logo

Boost :

Subject: Re: [boost] [context review] Performance questions
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2012-01-10 13:55:34

Hi Antony

Am 10.01.2012 19:32, schrieb Antony Polukhin:
> 1) Section "Struct boost_fcontext_t and related functions" misses
> header name, in which C interface is described.

> 2) Header context/detail/context_base.hpp includes
> # include<boost/context/detail/context_base_fiber.hpp>
> # include<boost/context/detail/context_base_uctx.hpp>
> This headers do not exist in checkout.

> 3) Moving context between threads is described in documentation but is
> not tested in tests.
I'm not shure if it should be tested - it's not the focus of the lib?!

> 4) Rvalue references sometimes miss forward(). For example
> bost/context/context.hpp (line 60) must be like:
> template< typename Fn, typename Allocator>
> static base_ptr_t make_context_(
> Fn&& fn, std::size_t size, flag_unwind_t do_unwind,
> flag_return_t do_return, Allocator const& alloc)
> {
> return base_ptr_t(
> new detail::context_object< typename remove_reference< Fn
>> ::type, Allocator>(
> boost::forward<Fn>(fn), alloc, size, do_unwind, do_return) );
> }
> Also forward() calls are required on lines 76, 151, 156, 161 (instead
> of static_cast< &&>)
> Preprocessor generated constructors can also have their parameters forwarded.
> Test cases can be add for this (create function object that is only
> movable, and move it to the context instance)
I was not aware of forward() - which boost lib contains it?

> One more question: does ARM implementation works correctly
> with/without VFP registers/floating point support?
well - at least I tried to accomplish the ARM calling standard for LINUX
and because I've no ARM board
I was forced to test the code on qemu-arm (ARM926EJ-S).
Related to VFP registers/floating point support: AFAIK LINUX does
allways software FP but I took the recommendations of the Debian people
(ARM port) into account (#if (defined(__VFP_FP__) && !defined(__SOFTFP__))).


Boost list run by bdawes at, gregod at, cpdaniel at, john at