Compare commits
No commits in common. "loop" and "dev" have entirely different histories.
@ -27,7 +27,6 @@ add_subdirectory(test)
|
|||||||
|
|
||||||
add_compile_options(-w)
|
add_compile_options(-w)
|
||||||
|
|
||||||
# add_definitions(-DASYNCO_THREADS_POOL_SIZE=20)
|
|
||||||
|
|
||||||
|
|
||||||
# Instaliraj biblioteku
|
# Instaliraj biblioteku
|
||||||
|
@ -18,20 +18,12 @@ using namespace std;
|
|||||||
#endif
|
#endif
|
||||||
using namespace boost::asio;
|
using namespace boost::asio;
|
||||||
|
|
||||||
#define loop while(true)
|
|
||||||
|
|
||||||
#include "timers.hpp"
|
#include "timers.hpp"
|
||||||
#include "trigger.hpp"
|
#include "trigger.hpp"
|
||||||
|
|
||||||
namespace marcelb {
|
namespace marcelb {
|
||||||
namespace asynco {
|
namespace asynco {
|
||||||
|
|
||||||
|
|
||||||
struct SleepHandle {
|
|
||||||
std::future<void> future;
|
|
||||||
std::shared_ptr<Timer> timer;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asynco runtime
|
* Asynco runtime
|
||||||
* Used for all asynchronous capabilities of this wrapper
|
* Used for all asynchronous capabilities of this wrapper
|
||||||
@ -178,15 +170,6 @@ public:
|
|||||||
|
|
||||||
Timer periodic(function<void()> callback, uint64_t time);
|
Timer periodic(function<void()> callback, uint64_t time);
|
||||||
|
|
||||||
/**
|
|
||||||
* Nonblock time sleep function
|
|
||||||
*/
|
|
||||||
|
|
||||||
void sleep(int _time);
|
|
||||||
|
|
||||||
SleepHandle sleep2(int _time);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize trigger (typed event)
|
* Initialize trigger (typed event)
|
||||||
*/
|
*/
|
||||||
|
@ -97,13 +97,6 @@ Timer delayed(function<void()> callback, uint64_t time);
|
|||||||
|
|
||||||
Timer periodic(function<void()> callback, uint64_t time);
|
Timer periodic(function<void()> callback, uint64_t time);
|
||||||
|
|
||||||
/**
|
|
||||||
* Nonblock time sleep function
|
|
||||||
*/
|
|
||||||
|
|
||||||
void sleep(int _time);
|
|
||||||
SleepHandle sleep2(int _time);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize trigger (typed event)
|
* Initialize trigger (typed event)
|
||||||
*/
|
*/
|
||||||
|
@ -37,23 +37,5 @@ Timer Asynco::periodic(function<void()> callback, uint64_t time) {
|
|||||||
return Timer(io_ctx, callback, time, TimerType::Periodic);
|
return Timer(io_ctx, callback, time, TimerType::Periodic);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Asynco::sleep(int _time) {
|
|
||||||
promise<void> _promise;
|
|
||||||
Timer t = delayed( [&]() {
|
|
||||||
_promise.set_value();
|
|
||||||
}, _time);
|
|
||||||
|
|
||||||
return await(_promise.get_future());
|
|
||||||
}
|
|
||||||
|
|
||||||
SleepHandle Asynco::sleep2(int _time) {
|
|
||||||
auto _promise = std::make_shared<std::promise<void>>();
|
|
||||||
|
|
||||||
auto _timer = std::make_shared<Timer>(io_ctx, [_promise]() {
|
|
||||||
_promise->set_value();
|
|
||||||
}, _time, TimerType::Delayed);
|
|
||||||
|
|
||||||
return { _promise->get_future(), _timer };
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -13,25 +13,12 @@ Timer periodic(function<void()> callback, uint64_t time) {
|
|||||||
return Timer(Asynco_Default_Runtime.io_ctx, callback, time, TimerType::Periodic);
|
return Timer(Asynco_Default_Runtime.io_ctx, callback, time, TimerType::Periodic);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sleep(int _time) {
|
|
||||||
return Asynco_Default_Runtime.sleep(_time);
|
|
||||||
}
|
|
||||||
|
|
||||||
SleepHandle sleep2(int _time) {
|
|
||||||
return Asynco_Default_Runtime.sleep2(_time);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Asynco& asynco_default_runtime() {
|
Asynco& asynco_default_runtime() {
|
||||||
return Asynco_Default_Runtime;
|
return Asynco_Default_Runtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
void asynco_default_run() {
|
void asynco_default_run() {
|
||||||
#ifdef ASYNCO_THREADS_POOL_SIZE
|
|
||||||
Asynco_Default_Runtime.run(ASYNCO_THREADS_POOL_SIZE);
|
|
||||||
#else
|
|
||||||
Asynco_Default_Runtime.run();
|
Asynco_Default_Runtime.run();
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void asynco_default_run_on_this() {
|
void asynco_default_run_on_this() {
|
||||||
|
@ -27,9 +27,3 @@ target_link_libraries(asynco_coroutine_default asynco Boost::system)
|
|||||||
|
|
||||||
add_executable(asynco_coroutine main_coroutine.cpp)
|
add_executable(asynco_coroutine main_coroutine.cpp)
|
||||||
target_link_libraries(asynco_coroutine asynco Boost::system)
|
target_link_libraries(asynco_coroutine asynco Boost::system)
|
||||||
|
|
||||||
add_executable(asynco_infinit_loop_default main_infinit_loop_default.cpp)
|
|
||||||
target_link_libraries(asynco_infinit_loop_default asynco Boost::system)
|
|
||||||
|
|
||||||
add_executable(asynco_infinit_loop main_infinit_loop.cpp)
|
|
||||||
target_link_libraries(asynco_infinit_loop asynco Boost::system)
|
|
@ -11,15 +11,8 @@ void notLambdaFunction() {
|
|||||||
|
|
||||||
class clm {
|
class clm {
|
||||||
public:
|
public:
|
||||||
int i = 7;
|
|
||||||
void classMethode() {
|
void classMethode() {
|
||||||
cout << "Call class method" << i << endl;
|
cout << "Call class method" << endl;
|
||||||
}
|
|
||||||
|
|
||||||
future<void> asyncMethode() {
|
|
||||||
return async_([&]() {
|
|
||||||
cout << "Async class method" << i << endl;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -60,8 +53,6 @@ int main() {
|
|||||||
classes.classMethode();
|
classes.classMethode();
|
||||||
});
|
});
|
||||||
|
|
||||||
await_(classes.asyncMethode());
|
|
||||||
|
|
||||||
//------------------AWAIT----------------------
|
//------------------AWAIT----------------------
|
||||||
|
|
||||||
auto a = async_ ( []() {
|
auto a = async_ ( []() {
|
||||||
|
@ -1,111 +0,0 @@
|
|||||||
#include "../lib/asynco.hpp"
|
|
||||||
using namespace marcelb::asynco;
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
Asynco asynco;
|
|
||||||
asynco.run(4);
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 1" << endl;
|
|
||||||
// asynco.sleep(1000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 2" << endl;
|
|
||||||
// asynco.sleep(2000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 25" << endl;
|
|
||||||
// asynco.sleep(2500);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 3" << endl;
|
|
||||||
// asynco.sleep(3000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 35" << endl;
|
|
||||||
// asynco.sleep(3500);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 4" << endl;
|
|
||||||
// asynco.sleep(4000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 45" << endl;
|
|
||||||
// asynco.sleep(4500);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 5" << endl;
|
|
||||||
// asynco.sleep(5000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 55" << endl;
|
|
||||||
// asynco.sleep(5500);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 6" << endl;
|
|
||||||
// asynco.sleep(6000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 65" << endl;
|
|
||||||
// asynco.sleep(6500);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// asynco.async ([&](){
|
|
||||||
// loop {
|
|
||||||
// cout << "Loop 7" << endl;
|
|
||||||
// asynco.sleep(7000);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// loop { // blokira trenutnu
|
|
||||||
// cout << "Loop 15" << endl;
|
|
||||||
// asynco.sleep(1500);
|
|
||||||
// }
|
|
||||||
|
|
||||||
asynco.join();
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1,111 +0,0 @@
|
|||||||
#include "../lib/asynco_default.hpp"
|
|
||||||
using namespace marcelb::asynco;
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
asynco_default_run();
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 1" << endl;
|
|
||||||
await_(sleep2(1000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 2" << endl;
|
|
||||||
await_(sleep2(2000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 25" << endl;
|
|
||||||
await_(sleep2(2500).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 3" << endl;
|
|
||||||
await_(sleep2(3000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 35" << endl;
|
|
||||||
await_(sleep2(3500).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 4" << endl;
|
|
||||||
await_(sleep2(4000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 45" << endl;
|
|
||||||
await_(sleep2(4500).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 5" << endl;
|
|
||||||
await_(sleep2(5000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 55" << endl;
|
|
||||||
await_(sleep2(5500).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 6" << endl;
|
|
||||||
await_(sleep2(6000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 65" << endl;
|
|
||||||
await_(sleep2(6500).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
async_ ([](){
|
|
||||||
loop {
|
|
||||||
cout << "Loop 7" << endl;
|
|
||||||
await_(sleep2(7000).future);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
loop { // blokira trenutnu
|
|
||||||
cout << "Loop 15" << endl;
|
|
||||||
sleep2(1500).future.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
asynco_default_join();
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user