2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-02-10 11:22:37 +00:00
Commit Graph

256 Commits

Author SHA1 Message Date
Oliver Kowalke
fbf412aae1 delete termianted fibers 2015-09-09 21:04:56 +02:00
Oliver Kowalke
19c3df0862 ontext cleanup inf schedulerBitte geben Sie eine Commit-Beschreibung für Ihre Änderungen ein. Zeilen, 2015-09-09 19:36:30 +02:00
Oliver Kowalke
50791e3dd7 put main-context to yield-queue in ~scheduler() 2015-09-09 19:36:02 +02:00
Oliver Kowalke
9a59ee0a17 test explictly against nullptr 2015-09-09 19:35:33 +02:00
Oliver Kowalke
c89410dfd8 uses intrusive::list<> isntread hand-written queues 2015-09-09 19:22:54 +02:00
Oliver Kowalke
291b9d7c17 small fixes 2015-09-08 21:33:20 +02:00
Oliver Kowalke
6459b76075 do not use context::active() inside scheduler 2015-09-07 22:30:26 +02:00
Oliver Kowalke
2689e34be6 store pointer to main-context in scheduler 2015-09-07 22:29:57 +02:00
Oliver Kowalke
d66575e2e6 fiber_manager renamed to scheduler 2015-09-07 17:35:37 +02:00
Oliver Kowalke
6499bb07e7 fiber_context renamed to context 2015-09-07 17:23:59 +02:00
Oliver Kowalke
7233f617d7 remove class scheduler - fiber_context has static TLS
- detail:.scheduler was removed
- fiber_context has a static thread-local pointer to the active
  fiber_context
- fiber_context has member to pointer of fiber_manager
- functions of fiber_manager are accessed only via fiber_context
- if fiber f is resumed, the fiber_manager of the current active fiber
  f' is assigned to f
  -> that is necessary if f was stolen form another thread
2015-09-07 11:50:01 +02:00
Oliver Kowalke
66e7b59424 fix usage of std::chrono 2015-09-05 11:57:36 +02:00
Oliver Kowalke
0a296315f7 use steady_clock isntead of high_resolution_clock 2015-09-05 10:57:50 +02:00
Oliver Kowalke
4187c68f4e release mutex before signal condition-variable 2015-09-05 10:37:27 +02:00
Oliver Kowalke
2601e72673 let sched_algo_ be managed by unique_ptr 2015-08-26 18:59:18 +02:00
Oliver Kowalke
887c96f835 interrupt + join deteched fibers in dtor fiber-manger 2015-08-26 17:29:54 +02:00
Oliver Kowalke
49b4b095fb wait for detached fibers in dtor of fiber_manager 2015-08-25 22:16:42 +02:00
Oliver Kowalke
2855e5128a fix asio stuff 2015-08-18 17:46:14 +02:00
Oliver Kowalke
b91fc419cf fix waiting_queue impl 2015-08-03 20:19:51 +02:00
Oliver Kowalke
4140e10330 this_fiber::yield() is not an interruption point 2015-07-29 11:47:17 +02:00
Oliver Kowalke
642fff9b93 remove unused preserve_fpu() functionality 2015-07-29 11:14:27 +02:00
Oliver Kowalke
d61b395207 Update round_robin.cpp 2015-07-20 19:42:11 +02:00
Oliver Kowalke
e7b1ee131c add function ready_fibers() 2015-07-03 18:03:14 +02:00
Oliver Kowalke
5d18cd5a4e add interruption point after fiber_manager::run()
- functions fiber_manager::join()/fiber_manager::yield()/fiber_manager:.wait()/fiber_manager_wait_until()
  check for interrption of the current fiber
2015-06-21 10:53:37 +02:00
Oliver Kowalke
6c35324727 use atomics per default
- atomics can be disable using BOOST_FIBERS_NO_ATOMICS compiler flag
2015-06-20 21:31:34 +02:00
Oliver Kowalke
20d08d98cd enable atomics with BOOST_FIBERS_USE_ATOMCIS 2015-06-19 21:39:34 +02:00
Oliver Kowalke
2002dba9d3 enable/disable atomic<> with BOOST_FIBERS_THREADSAFE 2015-06-19 18:57:23 +02:00
Oliver Kowalke
61dc492f31 some stuff/corrections 2015-06-19 18:55:02 +02:00
Oliver Kowalke
52a9da9180 remove invalid noexcept specifier from fiber::detach() 2015-06-13 08:40:13 +02:00
Oliver Kowalke
e2404eefd7 introduce new queue for terminated fibers 2015-06-13 08:14:14 +02:00
Oliver Kowalke
e22c7fb1cb some formating 2015-05-22 09:50:39 +02:00
Nat Goodspeed
dadc42a028 Add missing #include fiber_context.hpp. 2015-05-13 08:45:01 -04:00
Nat Goodspeed
f66cc3389d Remove static fm_mumble() functions brought over during merge.
Specifically, remove fm_get_sched_algo_() and two fm_wait_interval()
overloads.
2015-05-13 08:44:14 -04:00
Nat Goodspeed
04be1f0f84 algorithm.hpp no longer lives in detail subdirectory. 2015-05-13 08:41:38 -04:00
Nat Goodspeed
a4e77e502f Re-add bool fiber_manager::preserve_fpu() to header file. 2015-05-11 05:46:26 -04:00
Nat Goodspeed
765014daee working our way through build errors 2015-05-11 05:38:45 -04:00
Nat Goodspeed
9c4cdf3438 Desk-checking pass through fiber_properties source code. 2015-05-10 23:35:15 -04:00
Nat Goodspeed
2687814477 Merge branch 'develop' of github.com:olk/boost-fiber into sched-props-dev
Resolved conflicts:
	doc/condition_variables.qbk
	examples/cpp03/migration/workstealing_round_robin.cpp
	examples/cpp03/migration/workstealing_round_robin.hpp
	include/boost/fiber/algorithm.hpp
	include/boost/fiber/bounded_queue.hpp
	include/boost/fiber/detail/fiber_base.hpp
	include/boost/fiber/detail/fifo.hpp
	include/boost/fiber/detail/waiting_queue.hpp
	include/boost/fiber/detail/worker_fiber.hpp
	include/boost/fiber/fiber.hpp
	include/boost/fiber/fiber_manager.hpp
	include/boost/fiber/fixedsize_stack.hpp
	include/boost/fiber/operations.hpp
	include/boost/fiber/round_robin.hpp
	include/boost/fiber/unbounded_queue.hpp
	src/detail/worker_fiber.cpp
	src/fiber.cpp
	src/fiber_manager.cpp
	src/round_robin.cpp
2015-05-10 22:03:35 -04:00
Oliver Kowalke
aa337b07f7 move 'fm_' - free functions into fiber_manager 2015-02-08 16:02:22 +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
27c0a78d36 allocate fiber_context on stack 2015-01-13 14:57:32 +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
0fda6d1f88 remove some warnings 2015-01-04 13:13:15 +01:00
Oliver Kowalke
584dcdceee allocate/deallocate fiber_base via allocator 2014-12-29 17:38:01 +01:00
Oliver Kowalke
44326ebdd3 remove priority 2014-12-28 08:35:44 +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
Nat Goodspeed
95812f8321 Only notify() a sched_algorithm_with_properties if it is_ready().
While it's true that not every READY fiber is always in the scheduler's ready
queue -- there's a time window in which a READY fiber can be on the
fiber_manager's wait queue -- only READY fibers will ever be on the
scheduler's ready queue. So if (! fiber.is_ready()), there's no point in
bothering the sched_algorithm implementation with a change to its properties.
2014-11-19 10:25:31 -05:00