List of commits:
Subject Hash Author Date (UTC)
concurrent test passes 2bd62976d536c8c81659453e899a2e9c588f4aa6 mucbuc 2020-01-20 12:54:46
update dynamo 3315ba6e643d56478aaf05761368d76e9025de79 mucbuc 2020-01-20 12:13:05
circular update 7545023e77dcb92f28612a62b6405cb488adddc8 mucbuc 2020-01-19 12:09:22
cleanup remove stuff abe9e96601cdfc558823e6d856d16dac8ad15929 mucbuc 2020-01-19 11:52:54
circut update 4d75370846cd93032a684b5193494273a9ba9da9 mucbuc 2020-01-19 11:50:21
dynamoe update 814d85ebb0c03dddfd2d804d404286cc01209687 mucbuc 2020-01-19 06:59:11
simplify interfiace f69d4f7a7c2c02125ac51ffb9d4ba41ed08f8646 mucbuc 2020-01-19 06:41:36
fix another test fd8e7fa14a4daa281e7fbcec875bfe56ce39e400 mucbuc 2020-01-18 22:42:40
working on tests 1b57cbb4e806eda21565dc8bd7e7fe7ff1cb5fff mucbuc 2020-01-18 22:36:15
fix test 8b364e739d1e12cd77b9f63efb0a245a75e695df mucbuc 2020-01-18 21:49:21
fix emit once 71aba1ef472aa23c9c9a8529b5258599a6289c16 mucbuc 2020-01-18 21:41:03
remove agentlifetime test ce0fba661c6110fc050203a1a8f9fedf39258615 mucbuc 2020-01-18 11:25:44
emit with arg passes 1b2288e8472b749c513120c441397a77298ab0b7 mucbuc 2020-01-17 10:58:28
dynamo update 7082792be9aa3ccb56b0afbddf58bdf468d56030 mucbuc 2020-01-17 05:32:03
circuit 9877e777b93a54d396248ad449f6ba5abf324733 mucbuc 2020-01-17 04:22:05
dynamo v2dev 15f474b5a627558c230b2fe96c40fb5c68a176d0 mucbuc 2020-01-17 04:21:40
research 47ce3a71d001f2aea7af852673b42b83f20be4dd Ubuntu 2019-12-22 17:19:57
working on test b646f535e229ff57b421f0bee0570c8a4bda76a9 Ubuntu 2019-12-21 13:20:34
emit with args 81cc2a4373cb92a07ba7acbab65ebabceb826dc0 Ubuntu 2019-12-21 06:40:24
format 1192aea1b3bf9b400e02a11152a38e5dfc6b7ad6 Ubuntu 2019-12-21 06:27:42
Commit 2bd62976d536c8c81659453e899a2e9c588f4aa6 - concurrent test passes
Author: mucbuc
Author date (UTC): 2020-01-20 12:54
Committer name: mucbuc
Committer date (UTC): 2020-01-20 12:54
Parent(s): 3315ba6e643d56478aaf05761368d76e9025de79
Signer:
Signing key:
Signing status: N
Tree: 675103c903eff2046081a7ee17cf4b607b6bb9b6
File Lines added Lines deleted
src/interface.h 0 1
src/quemitter_impl.h 1 1
src/quemitter_impl.hxx 6 5
test/concurrent.json 1 2
test/dispatch_logic.json 1 2
test/emit_while_emit.json 1 2
test/emit_with_arg.json 1 2
test/emit_with_args.json 1 2
test/modify_while_traversal.json 1 2
test/on.json 1 2
test/on_while_emit.json 1 2
test/src/concurrent.cpp 1 2
test/src/emitter_fwd.h 0 15
File src/interface.h changed (mode: 100644) (index c7833a5..7dc26fb)
... ... namespace control {
26 26
27 27 public: public:
28 28 typedef Emitter<T, U...> base_type; typedef Emitter<T, U...> base_type;
29 using typename base_type::batch_type;
30 29 using typename base_type::callback_type; using typename base_type::callback_type;
31 30 using typename base_type::event_type; using typename base_type::event_type;
32 31 using typename base_type::listener_type; using typename base_type::listener_type;
File src/quemitter_impl.h changed (mode: 100644) (index d4a2044..08a2139)
... ... namespace control {
37 37 typedef om636::circuit::CircuitQueue<function_type> queue_type; typedef om636::circuit::CircuitQueue<function_type> queue_type;
38 38 typedef std::mutex mutex_type; typedef std::mutex mutex_type;
39 39
40 void push_event(function_type);
40 void push_event(function_type &&);
41 41
42 42 EmitterImpl<T, U...> m_reactor; EmitterImpl<T, U...> m_reactor;
43 43 queue_type m_queue; queue_type m_queue;
File src/quemitter_impl.hxx changed (mode: 100644) (index 6949b5d..ebb86d1)
... ... namespace control {
23 23 interupt(e, v...); interupt(e, v...);
24 24 }); });
25 25
26 push_event(p);
26 push_event(std::move(p));
27 27 } }
28 28
29 29 ///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
30 30 template <class T, template <typename> class P, typename... U> template <class T, template <typename> class P, typename... U>
31 void QuemitterImpl<T, P, U...>::push_event(function_type f)
31 void QuemitterImpl<T, P, U...>::push_event(function_type && f)
32 32 { {
33 m_queue.push(f);
33 m_queue.push(std::move(f));
34 34 fbp::pushed_event(*this); fbp::pushed_event(*this);
35 35
36 function_type current;
36 37 std::unique_lock<mutex_type> lock(m_mutex, std::defer_lock); std::unique_lock<mutex_type> lock(m_mutex, std::defer_lock);
37 38 while (lock.try_lock() while (lock.try_lock()
38 39 && fbp::locked_mutex(*this) && fbp::locked_mutex(*this)
39 && m_queue.try_pop(f)) {
40 f();
40 && m_queue.check_pop(current)) {
41 current();
41 42
42 43 lock.unlock(); lock.unlock();
43 44 fbp::unlocked_mutex(*this); fbp::unlocked_mutex(*this);
File test/concurrent.json changed (mode: 100644) (index 0debcbd..264f284)
4 4 ], ],
5 5 "sources": [ "sources": [
6 6 "src/concurrent.cpp", "src/concurrent.cpp",
7 "src/emitter.h",
8 "src/emitter_fwd.h"
7 "src/emitter.h"
9 8 ] ]
10 9 } }
File test/dispatch_logic.json changed (mode: 100644) (index 40df4a5..94281f5)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/dispatch_logic.cpp",
7 "src/emitter_fwd.h"
6 "src/dispatch_logic.cpp"
8 7 ] ]
9 8 } }
File test/emit_while_emit.json changed (mode: 100644) (index 76e3a40..55f7a69)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/emit_while_emit.cpp",
7 "src/emitter_fwd.h"
6 "src/emit_while_emit.cpp"
8 7 ] ]
9 8 } }
File test/emit_with_arg.json changed (mode: 100644) (index daabd94..2cde8d0)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/emit_with_arg.cpp",
7 "src/emitter_fwd.h"
6 "src/emit_with_arg.cpp"
8 7 ] ]
9 8 } }
File test/emit_with_args.json changed (mode: 100644) (index 3e0e664..a1aa694)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/emit_with_args.cpp",
7 "src/emitter_fwd.h"
6 "src/emit_with_args.cpp"
8 7 ] ]
9 8 } }
File test/modify_while_traversal.json changed (mode: 100644) (index c630cb2..d255226)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/modify_while_traversal.cpp",
7 "src/emitter_fwd.h"
6 "src/modify_while_traversal.cpp"
8 7 ] ]
9 8 } }
File test/on.json changed (mode: 100644) (index 085974e..a4d221e)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/on.cpp",
7 "src/emitter_fwd.h"
6 "src/on.cpp"
8 7 ] ]
9 8 } }
File test/on_while_emit.json changed (mode: 100644) (index 4a6cf2f..038aa08)
3 3 "lib/ohm/ohm.json" "lib/ohm/ohm.json"
4 4 ], ],
5 5 "sources": [ "sources": [
6 "src/on_while_emit.cpp",
7 "src/emitter_fwd.h"
6 "src/on_while_emit.cpp"
8 7 ] ]
9 8 } }
File test/src/concurrent.cpp changed (mode: 100644) (index b696d0b..89bde8c)
2 2
3 3 #include <tmp/src/test.h> #include <tmp/src/test.h>
4 4
5 #include "emitter_fwd.h"
6 5 #include <lib/ohm/src/quemitter_impl.h> #include <lib/ohm/src/quemitter_impl.h>
7 6
8 7 using namespace std; using namespace std;
 
... ... unsigned concurent_test_policy<T>::index = 0;
50 49
51 50 void run_concurent_test() void run_concurent_test()
52 51 { {
53 typedef om636::control::QuemitterImpl<string, concurent_test_policy> q_type;
52 typedef om636::control::QuemitterImpl<string, concurent_test_policy, unsigned> q_type;
54 53 q_type e; q_type e;
55 54
56 55 unsigned counter = 0; unsigned counter = 0;
File test/src/emitter_fwd.h deleted (index 8732ca0..0000000)
1 #ifndef CORE_FWD_INCLUDE_GUARD
2 #define CORE_FWD_INCLUDE_GUARD
3
4 #include <functional>
5 #include <string>
6
7 namespace om636 {
8 namespace control {
9 template <typename = std::string, typename U = std::function<void()> >
10 class Emitter;
11 }
12
13 } //core
14
15 #endif
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/mucbuc/ohm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/mucbuc/ohm

Clone this repository using git:
git clone git://git.rocketgit.com/user/mucbuc/ohm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main