add main loop
continuous-integration/drone/push Build is failing Details

rpc
Bastien OLLIER 2 years ago
parent 373af88ceb
commit b027ac07ec

@ -11,6 +11,9 @@
#include <wait.h>
#include "host.hpp"
#include "rpc/server.h"
#include "rpc/this_handler.h"
#include <chrono>
namespace fs = std::filesystem;
@ -31,47 +34,60 @@ sk::runner_backend detect_backend() {
return sk::runner_backend::BubbleWrap;
}
#include "rpc/server.h"
void mainLoop(std::queue<sk::program>& programLists){
while(true){
///auto now = std::chrono::system_clock::now();
//std::time_t now_time = std::chrono::system_clock::to_time_t(now);
//std::cout<<std::ctime(&now_time)<<" "<<programLists.size()<<std::endl;
//if (programLists.size() == 1)
// exit(0);
const sk::program &currentProgram = programLists.front();
const sk::host &currentHost = hosts.top();
sk::runner runner(detect_backend());
}
}
#include <thread>
int main() {
std::vector<sk::host> listsHosts = sk::config::loadHostsFromToml("../conf.toml");
std::priority_queue<sk::host> hosts(listsHosts.begin(), listsHosts.end());
std::queue<sk::program> programLists;
if (hosts.empty()) {
std::cerr << "Pas de host" << std::endl;
exit(1);
}
/*queue.push(sk::program{"echo $(( 1 + 2 ))", "ghcr.io/moshell-lang/moshell:master"});
sk::runner runner(detect_backend());
while (!queue.empty()) {
const sk::program &current = queue.front();
sk::run_result res = runner.run_blocking(current);
std::cout << "out: " << res.out << "\n";
std::cout << "err: " << res.err << "\n";
queue.pop();
}*/
//std::thread threadMainLoop(mainLoop,programLists);
//threadMainLoop.join();
std::thread workerThread(mainLoop, std::ref(programLists));
rpc::server srv(9000);
rpc::server srv(8080);
srv.bind("add", [&hosts, &programLists](const std::string &prog, const std::string &image) {
programLists.push(sk::program{prog, image});
srv.bind("add", [](const std::string& prog, const std::string& image) {
std::cout<<"log"<<std::endl;
std::queue<sk::program> queue;
queue.push(sk::program{prog, image});
/*const sk::program &currentProgram = programLists.front();
const sk::host &currentHost = hosts.top();
sk::runner runner(detect_backend());
const sk::program &current = queue.front();
sk::run_result res = runner.run_blocking(current);
sk::run_result res = runner.run_blocking(currentProgram);
std::cout << "out: " << res.out << "\n";
std::cout << "err: " << res.err << "\n";
queue.pop();
programLists.pop();
if (res.err != "") {
rpc::this_handler().respond_error(res.err);
}
return res.out;
});
srv.run();
return 0;
}

Loading…
Cancel
Save