2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-18 01:52:24 +00:00
Commit Graph

310 Commits

Author SHA1 Message Date
Oliver Kowalke
eeaf6d3136 Update segmented_stack.hpp 2015-02-19 08:20:43 +01:00
Oliver Kowalke
1bd3e29ff8 rename execution_context::jump_to() -> execution_context::resume() 2015-02-18 18:53:51 +01:00
Oliver Kowalke
09123e20ad remove unecessary fiber ctor 2015-02-14 11:10:46 +01:00
Oliver Kowalke
91c237666e use C++14 features
- lambda capture expressions supports move-only types
- parameters are packed into std::tuple<> and with context-function
  moved to the context-lambda (->lambda capture expression)
- in context-lambda context-function with packed parameters called
  (-> deferred call)
2015-02-11 20:13:00 +01:00
Oliver Kowalke
aa337b07f7 move 'fm_' - free functions into fiber_manager 2015-02-08 16:02:22 +01:00
Oliver Kowalke
5a0f9394e8 Merge branch 'ctx-onstack-lambda' into develop
Conflicts:
	examples/cpp03/migration/workstealing_round_robin.cpp
	include/boost/fiber/bounded_queue.hpp
	include/boost/fiber/detail/worker_fiber.hpp
	include/boost/fiber/unbounded_queue.hpp
	src/detail/worker_fiber.cpp
2015-02-06 18:32:35 +01:00
Oliver Kowalke
13bf486fea update stack-allocators 2015-02-06 18:29:26 +01:00
Oliver Kowalke
f37d7c5511 store terminated fibers in tqueue 2015-01-15 21:22:10 +01:00
Oliver Kowalke
f22ae8ba53 use lambda as fiber-fn 2015-01-13 15:15:59 +01:00
Oliver Kowalke
27c0a78d36 allocate fiber_context on stack 2015-01-13 14:57:32 +01:00
Oliver Kowalke
9b7b0be903 Revert "improve spinlock algorithm"
This reverts commit 08f3b52193.
2015-01-10 21:21:05 +01:00
Oliver Kowalke
08f3b52193 improve spinlock algorithm 2015-01-10 21:20:31 +01:00
Oliver Kowalke
fbe98be71e std::copy_exception is deprecated (use std::make_exception_ptr) 2015-01-05 19:57:51 +01:00
Oliver Kowalke
654127af00 rename fiber_base -> fiber_context and move to public namespace 2015-01-04 16:05:08 +01:00
Oliver Kowalke
3b332c17ee variadric arguments 2015-01-01 14:40:39 +01:00
Oliver Kowalke
584dcdceee allocate/deallocate fiber_base via allocator 2014-12-29 17:38:01 +01:00
Oliver Kowalke
6a652b8cd7 use std::forward() for rvalues 2014-12-28 22:03:09 +01:00
Oliver Kowalke
f6c7ab7826 rename (un)bounded_queue -> (un)bounded_channel + use allocator 2014-12-28 21:30:14 +01:00
Oliver Kowalke
44326ebdd3 remove priority 2014-12-28 08:35:44 +01:00
Oliver Kowalke
4d1f12e333 extend async() to accept a stack-allocator 2014-12-28 08:07:31 +01:00
Oliver Kowalke
0bd0062789 correct forward declaration of scheduler 2014-12-27 21:16:58 +01:00
Oliver Kowalke
e1698b64a3 static-cast to int for errc 2014-12-27 21:16:36 +01:00
Oliver Kowalke
7f7f01098b make main-fiber thread affine 2014-12-27 21:16:03 +01:00
Oliver Kowalke
2f19be6d67 use C++11 2014-12-27 19:07:42 +01:00
Oliver Kowalke
ddbdd91ced use execution_context 2014-11-24 19:58:59 +01:00
Oliver Kowalke
9bd1c0cd0f Nat Goodspeed: optimize fifo + waiting_queue 2014-11-24 19:18:18 +01:00
Oliver Kowalke
81ec70bcef optimize queues : from Nat Goodspeed 2014-11-24 18:11:37 +01:00
Oliver Kowalke
e29cc6dc81 use correct eader for thread_specific_ptr<> 2014-11-24 18:11:22 +01:00
Oliver Kowalke
6fc2b57f23 use thread_specific_ptr 2014-11-24 18:11:08 +01:00
Oliver Kowalke
691aafd839 Nat Goodspeed: Reimplement waiting_queue; Simplify fifo 2014-11-23 19:23:08 +01:00
Oliver Kowalke
ba3c0bb806 optimize queues : from Nat Goodspeed 2014-11-22 11:23:18 +01:00
Oliver Kowalke
ea709758cb use correct eader for thread_specific_ptr<> 2014-11-22 11:22:41 +01:00
Oliver Kowalke
4cc6e72fae use thread_specific_ptr 2014-11-20 18:36:09 +01:00
Oliver Kowalke
7b35699b6e Revert "Nat Goodspeed:"
This reverts commit 1e751d7dbf.
2014-11-20 18:17:08 +01:00
Oliver Kowalke
1e751d7dbf Nat Goodspeed:
- Change some doc references from 'algorithm' to 'sched_algorithm'.
- Initial cut at supporting arbitrary user-coded scheduler properties.
- Set fiber_properties::sched_algo_ every time through awakened().
- Define sched_algorithm methods on fiber_base*, not worker_fiber*.
- Simplify detail::fifo by making tail_ point to last link pointer.
- Reimplement waiting_queue::push() using pointer-to-pointer trick.
- Reimplement waiting_queue::move_to() using fiber_base** scan.
- Make bounded_queue::tail_ a ptr* to simplify appending new nodes.
- Make unbounded_queue::tail_ a ptr* to simplify linking new nodes.
- Remove thread_affinity flag and access methods.
- Re-add thread_affinity specific to workstealing_round_robin.
- Remove 'priority' for every fiber, and its support methods.
2014-11-12 20:03:12 +01:00
Oliver Kowalke
6a1257442b re-factoring of thread_local_ptr<>
Conflicts:
	include/boost/fiber/detail/scheduler.hpp
	src/detail/scheduler.cpp
	src/fiber_manager.cpp
2014-10-01 23:19:36 +02:00
Oliver Kowalke
2e4fa3e53f re-factoring of thread_local_ptr<> 2014-10-01 21:40:12 +02:00
Oliver Kowalke
1c3b447716 some fixes 2014-09-26 17:57:53 +02:00
Oliver Kowalke
70440591cf call cleanup-function in thread_local_ptr
(cherry picked from commit fca6e0301a)
2014-09-25 19:06:01 +02:00
Oliver Kowalke
7483a729aa some fixes 2014-09-25 18:52:04 +02:00
Oliver Kowalke
fca6e0301a call cleanup-function in thread_local_ptr 2014-09-25 18:51:30 +02:00
Oliver Kowalke
7fb469cd10 some fixes 2014-09-24 19:18:44 +02:00
Oliver Kowalke
5910ac9eff remove 'break' from qaiting_queue
- break prevents asio exmples from working
2014-09-18 20:37:55 +02:00
Vincent Lee
c6cdd4a988 fix deque erase, the end() iterator cannot be used as erase position. 2014-09-15 18:04:36 +08:00
Oliver Kowalke
e48252837f accept any clock type for lock_until() etc. 2014-09-05 17:55:16 +02:00
Oliver Kowalke
2d4a919faa fix errors because of -pedantic 2014-08-23 14:20:01 +02:00
Oliver Kowalke
0aaff7cb6d fix queues::push(9 for MSVC 2014-08-23 13:40:42 +02:00
Oliver Kowalke
6c1229af0d call forward() and move() with namespace boost 2014-08-21 20:22:10 +02:00
Oliver Kowalke
64ea436557 inline functions for full-specialized tempaltes 2014-08-21 17:34:23 +02:00
Oliver Kowalke
00944ddf6a update using chrono-clocks 2014-08-20 17:37:47 +02:00