Process immortality: a client calls MakeMeImmortal, which spawns a companion WD process. Both sides exchange heartbeats with signals and revive each other via a heap-based scheduler.
watchdog/
├── include/ # public API
├── src/ # implementation
├── deps/ # internal dependencies
│ └── heap_scheduler/
│ └── heap_task/
│ └── heap/
│ └── dvector/
│ └── uid/
├── test/
├── Makefile
└── README.md
make
make runWatchdog builds two binaries:
WD— immortal companion processrun— demo client (MakeMeImmortal/DoNotResuscitate)
make demo # builds both, then runs the clientheap_schedulerheap_taskheapdvectoruid