1FLUXCAPACITOR(1)             User Commands Manual             FLUXCAPACITOR(1)
2
3
4

NAME

6       fluxcapacitor - run programs without blocking on syscalls
7

SYNOPSIS

9       fluxcapacitor [--libpath PATH] [--output FILENAME] [--signal SIGNAL]
10                     [--verbose] -- command [arguments...]
11
12       fluxcapacitor -- command1 [args...]  -- command2 [args...] ...
13

DESCRIPTION

15       fluxcapacitor is a tool for making your program run without blocking on
16       timeouts,  on  functions  like  poll and select, by spoofing POSIX time
17       functions.  By "patching" low-level syscalls, it can lie about time  to
18       any program in any programming language, as long as it runs on Linux.
19
20       This  approach has a significant advantage: it is possible to lie about
21       time to many processes at the same time. It is  especially  useful  for
22       running  network  applications where server and client run in different
23       processes which rely on time. It  will  also  work  with  multithreaded
24       applications.
25
26       fluxcapacitor  will  make  your program run faster and be 100% CPU con‐
27       strained.  It does that by "speeding  up"  blocking  syscalls.   Faking
28       time is a necessary side effect.
29

OPTIONS

31       --help Print usage instructions and exit.
32
33       --libpath PATH
34              Load fluxcapacitor_preload.so from selected PATH directory.
35
36       --output FILENAME
37              Write logs to FILENAME instead of stderr.
38
39       --signal SIGNAL
40              Use  specified SIGNAL to interrupt blocking syscalls, instead of
41              SIGURG.
42
43       -v
44       --verbose
45              Print more stuff. Repeat for debugging messages.
46

LIMITATIONS

48       fluxcapacitor won't work in a number of cases:
49
50       · If your code is statically compiled and fluxcapacitor_preload.so  ld-
51         preloaded library can't play its role.
52
53       · If  your  code  uses  unpopular blocking functions in the event loop,
54         like signalfd() and sigwait(), or if your program relies  heavily  on
55         signals and things like alert(), setitimer(), or timerfd_create().
56
57       · If your code uses file access or modification timestamps.  fluxcapac‐
58         itor does not mock that.
59
60       Basically, for fluxcapacitor to work all the time, queries need  to  be
61       done  using  gettimeofday() or clock_gettime(), and all the waiting for
62       timeouts must rely on select(), poll() or  epoll_wait().   Fortunately,
63       that's the case in most programming languages.
64
65
66
67                                  2018-01-13                  FLUXCAPACITOR(1)
Impressum