wiki:CBuildslave

C-Based Workers

This page describes details on a C-based worker using C and C++.


Purpose


Requirements

These are absolute requirements that must be in the final version, irrespective of the model chosen.

  • Multi-platform, eg Windows, Unix.

Comparison

Comparison between different models.

Note: This only covers the differences between models, not C/C++.

Fork

Good
  • A crash will only take down an individual build.
  • Less complex to work with (stateless)
  • Blocking interface keeps things realtime.
Bad
  • Might require (slight) changes to how commands/builds are run.
  • When the master dies the worker needs to idle out could consume resources.
  • Potential to use more memory, however the daemon would be extremely small.

Select

Good
  • Single process
  • Low memory footprint
Bad
  • Must keep an internal state and track all protocol traffic for each respective build.
  • Crashing will take down all builds, unless multiple workers are launched which defeats the purpose of using select.

Thread

Good
  • Fast
  • Highly efficient usage of memory.
Bad
  • Complex to write multi-platform
  • Crashing will take down all builds, unless multiple workers are launched which defeats the purpose of using threads.
Last modified 14 months ago Last modified on Jan 4, 2017, 2:22:20 AM