Changes between Version 1 and Version 2 of CBuildslave


Ignore:
Timestamp:
06/26/10 16:11:34 (3 years ago)
Author:
verm
Comment:

Fill in some info.

Legend:

Unmodified
Added
Removed
Modified
  • CBuildslave

    v1 v2  
    11= C-Based Buildslaves = 
     2[[TOC(CBuildslave, inline, depth=3)]] 
    23 
    34This page describes details on a '''C'''-based buildslave using `C` and `C++`. 
     5---- 
     6= Purpose = 
     7 
     8---- 
     9= Requirements = 
     10These are absolute requirements that must be in the final version, irrespective of the model chosen. 
     11 
     12 * Multi-platform, eg Windows, Unix. 
    413 
    514---- 
     
    716Comparison between different models. 
    817 
     18'''Note''': This only covers the differences between models, not `C`/`C++`. 
     19 
     20== Fork == 
     21 __Good__:: 
     22 * A crash will only take down an individual build. 
     23 * Less complex to work with (stateless) 
     24 * Blocking interface keeps things realtime. 
     25 
     26 __Bad__:: 
     27 * Might require (slight) changes to how commands/builds are run. 
     28 * When the master dies the slave needs to idle out could consume resources. 
     29 * Potential to use more memory, however the daemon would be extremely small. 
     30 
     31== Select == 
     32 __Good__:: 
     33 * Single process 
     34 * Low memory footprint 
     35 
     36 __Bad__:: 
     37 * Must keep an internal state and track all protocol traffic for each respective build. 
     38 * Crashing will take down all builds, unless multiple slaves are launched which defeats the purpose of using select. 
     39 
     40== Thread == 
     41 __Good__:: 
     42 * Fast 
     43 * Highly efficient usage of memory. 
     44 
     45 __Bad__:: 
     46 * Complex to write multi-platform 
     47 * Crashing will take down all builds, unless multiple slaves are launched which defeats the purpose of using threads.