2
0
mirror of https://github.com/boostorg/fiber.git synced 2026-01-19 04:12:09 +00:00

88 Commits

Author SHA1 Message Date
Oliver Kowalke
238487b543 fix property numa 2025-02-21 15:28:56 +01:00
Rene Rivera
01578e9635 Split b2 dependencies into public and private. 2024-07-26 12:48:26 -05:00
Rene Rivera
676537675c Move inter-lib dependencies to a project variable and into the build targets. 2024-07-23 22:34:24 -05:00
Rene Rivera
2a16362e2d Add missing import-search for cconfig/predef checks. 2024-05-04 23:29:18 -05:00
Rene Rivera
cc33df329e Add missing NO_LIB usage requirements. 2024-04-28 20:15:11 -05:00
Rene Rivera
eafb83ae82 Make the library modular usable. 2024-03-11 08:38:17 -05:00
Oliver Kowalke
8d0fe6055a add dependency to fiber lib 2021-12-29 18:42:41 +01:00
Dmitry Khominich
f1ab9c738e introduce waker and wait_queue abstractions. fixes #251, #259
* remove context::wait_hook_ and context::twstatus in flavor to waker_epoch_ and waker class
* this avoids data races in case of wait_until() operations, when the context
  could be timeouted and rescheduled on the other OS thread. In this case could
  be data races with context::wait_hook_ and inconsistences context::twstatus
  states.
* using context::waker_epoch_ introduces mechanism when the old wakers become
  outdated and waker::wake() is just no op. This fixes data races explained in
  the previous point
* fibers waiting queue with timeouts and notification mechanisms are incapsulated into
  wait_queue class. This introduces simple abstraction level to be used in
  different synchronization primitives
2020-10-14 17:15:07 +03:00
EGuesnet
0cdf09e163 split-stack flag for GCC 2020-06-26 14:17:12 +02:00
Peter Dimov
8359cddf35 Fix boost-install use; should only be issued once 2018-10-06 01:39:58 +03:00
Oliver Kowalke
aee67c214e re-enable libstdc++ 4.8
- in context of #152
2018-06-27 11:29:49 +02:00
Oliver Kowalke
a76f54fcf3 move NUMA to separate library
- in context of #172
2018-05-13 09:20:38 +02:00
Oliver Kowalke
736a2f5d8d add feature-defect macro for std::regex 2017-11-06 18:00:23 +01:00
Oliver Kowalke
87c5f1e404 NUMA support 2017-05-06 22:19:57 +02:00
oliver Kowalke
fffb7e7f32 check support for std::mutex and std::thread 2016-12-13 08:19:15 +01:00
Oliver Kowalke
fa071c27cf use SPMC (chase-lev algoritm) for ready-queue (work stealing) 2016-11-03 11:05:51 +01:00
oliver Kowalke
ce9e2bd8f0 build: apply defect macro for thread_local 2016-09-15 09:00:10 +02:00
oliver Kowalke
db6702cd59 apply C++11 feature checks to build/jamfile.v2 2016-09-05 09:13:28 +02:00
Oliver Kowalke
1f81bc2a5f Merge branch 'exp' into develop 2016-05-22 07:20:22 +02:00
Oliver Kowalke
b5f278df34 use std::mutex for locking operations 2016-05-20 18:34:09 +02:00
Oliver Kowalke
8bd1006634 add random_chase_lev algorithm 2016-05-16 14:25:19 +02:00
Oliver Kowalke
310f3ce2f2 move sched_algorithm to algo::algorithm
- new namesapce algo
- shared_round_robin with shared ready queue
2016-05-13 20:14:48 +02:00
Oliver Kowalke
57267ec957 remove support for fiber interruption 2016-04-19 18:16:31 +02:00
Oliver Kowalke
fcdbe3bc66 e own implementation of future_errc and related 2015-12-18 20:38:23 +01:00
Oliver Kowalke
570b0a9ea9 rename condition -> condition_variable 2015-12-13 13:46:26 +01:00
Oliver Kowalke
117a55d8c6 replace user-defined future_status+ future_errc by those of std 2015-12-05 20:16:07 +01:00
Oliver Kowalke
4c791a3790 support for fiber properties + custom scheduler 2015-09-29 17:54:29 +02:00
Oliver Kowalke
b43f288469 support for futures added 2015-09-22 19:17:08 +02:00
Oliver Kowalke
1ad58fbba1 add interruption 2015-09-21 20:18:53 +02:00
Oliver Kowalke
bba963c64c class barrier added 2015-09-20 15:38:32 +02:00
Oliver Kowalke
a856a96369 class condtion added 2015-09-20 11:33:59 +02:00
Oliver Kowalke
c8a1c4e4df class recursive_timed_mutex added 2015-09-19 18:14:17 +02:00
Oliver Kowalke
6b01f060b7 class timed_mutex added 2015-09-19 18:03:41 +02:00
Oliver Kowalke
e6ddbe10a1 class recursive_mutex added 2015-09-19 17:27:45 +02:00
Oliver Kowalke
3f5e076f3a class mutex added 2015-09-19 17:01:20 +02:00
Oliver Kowalke
bbf41e95f3 add spinlock used to protect forr concurrent access (threads)
- calls std::this_thread::yield()
2015-09-19 09:31:22 +02:00
Oliver Kowalke
6d43540a29 cleanup 2015-09-15 19:15:00 +02:00
Oliver Kowalke
c89410dfd8 uses intrusive::list<> isntread hand-written queues 2015-09-09 19:22:54 +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
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
9d246ae680 enable compiling with atomics per default 2015-06-20 12:27:51 +02:00
Oliver Kowalke
e2404eefd7 introduce new queue for terminated fibers 2015-06-13 08:14:14 +02:00
Oliver Kowalke
9b8c772388 define BOOST_DISABLE_ASSERTS in Jamfile
- for variant=release or optimization=speed define BOOST_DISABLE_ASSERTS
2015-06-13 08:06:18 +02:00
Nat Goodspeed
765014daee working our way through build errors 2015-05-11 05:38:45 -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
f373348335 update Jamfiles.v2 2015-02-12 16:30:10 +01:00
Oliver Kowalke
aa337b07f7 move 'fm_' - free functions into fiber_manager 2015-02-08 16:02:22 +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
2f19be6d67 use C++11 2014-12-27 19:07:42 +01:00