Last modified 2 years ago
C-Based Buildslaves
Table of Contents
This page describes details on a C-based buildslave 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 slave 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 slaves 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 slaves are launched which defeats the purpose of using threads.
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)