Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
mm::auto_tuning::ProcessOptions Struct Reference

What to start, and where. More...

#include <process.h>

Public Attributes

std::filesystem::path binary
 
std::uint16_t port = kDefaultPort
 
std::filesystem::path logFile
 
std::chrono::milliseconds startTimeout {30000}
 

Detailed Description

What to start, and where.

Member Data Documentation

◆ binary

std::filesystem::path mm::auto_tuning::ProcessOptions::binary

The executable. An empty path is a configuration error, not a default: the caller resolves the default, because only the composition root knows where Motion Master itself lives.

◆ logFile

std::filesystem::path mm::auto_tuning::ProcessOptions::logFile

The child's own stdout and stderr are appended here. It prints a startup line and one line per request, which would otherwise land on Motion Master's console without passing through its logger — visible, but absent from both GET /api/log and the log file. An empty path lets the child inherit our streams instead.

◆ port

std::uint16_t mm::auto_tuning::ProcessOptions::port = kDefaultPort

◆ startTimeout

std::chrono::milliseconds mm::auto_tuning::ProcessOptions::startTimeout {30000}

How long start waits for the child to answer GET /api/health.

Measured on a Linux development machine, a healthy child answers 1.0 s after the spawn: the executable unpacks itself on every start, and that unpack is the whole cost. The default is far above that because a machine that never unpacked this executable is slower, and because the wait ends the moment the child answers or dies. So a generous limit costs nothing in either normal case, and only a child that is alive and silent waits it out.


The documentation for this struct was generated from the following file: