rcpp_framework/modules/drogon/trantor/tests/RunInLoopTest1.cc

31 lines
882 B
C++

//
// Created by antao on 1/14/17.
//
#include <trantor/net/EventLoop.h>
#ifndef _WIN32
#include <unistd.h>
#endif
#include <iostream>
#include <thread>
#include <chrono>
using namespace std::chrono_literals;
int main()
{
trantor::EventLoop loop;
std::thread thread([&loop]() {
std::this_thread::sleep_for(3s);
loop.runInLoop([&loop]() {
std::cout << "runInLoop called in other thread" << std::endl;
loop.queueInLoop(
[]() { std::cout << "queueInLoop in runInLoop" << std::endl; });
});
});
loop.runInLoop([]() { std::cout << "runInLoop 1" << std::endl; });
loop.runInLoop([]() { std::cout << "runInLoop 2" << std::endl; });
loop.queueInLoop([]() { std::cout << "queueInLoop 1" << std::endl; });
loop.runAfter(1.5, []() { std::cout << "run after 1.5" << std::endl; });
loop.loop();
}