Classes | |
| class | Main |
TODO:
@todo Do a better job handling default/reasonable timeout time for service to start/stop/restart.
Hacked something mostly for UNIX.
@todo Window service not fully working - see why when you start/stop we don't see
Logger::Get ().Log (Logger::eNotice, L"User-service code is shut down");
message printed out. Basic startup/shutdown seems roughly OK though.
@todo Fix Main::BasicUNIXServiceImpl::SignalHandler_() use of static variable. Race conditions
accessing static var. Use instance var and proper locking.
@todo Fix Main::BasicUNIXServiceImpl::SignalHandler_ on kSIG_ReReadConfiguration to somehow q message
to re-read, and not invoke re-read from thread (avoid possible deadlock with allocating mem in signal handler).
@todo Fix majorly hacked (and unsafe anyhow cuz of malloc in signal handler)
stuff. Righjt now needed to make Sercice STOP work under posix, but its
NOT reliably done!!!
SEE "ADD SAFE SIGNAL HANDLER (DEADLOCK FREE) SUPPORT" in Execution::Signal module
@todo Carefully review Windows service code for thread locking and races. Complete missing cases, and
bullet proof.
@todo Support passing extra args to subprocess. For example, if we do --start --logfile=xxx,
We need the invocation of EXE --Run-As-Service to ALSO take --logfile=xxx param. NYI
@todo Add "Starting" and "Stopping" status values to possible states.
Probably add extra states, and then callback parameter to IApplicationRep::MainLoop()
so it can callback and say status moved from starting to running. Easier to automatically
do the stopping/stopped change (cuz we have the hooks).
Added the startedCB method - just so fewer incompatible API-breaking changes needed in the
future.
@todo Implement/test (it maybe implemented) --ReloadConfiguration operation.
@todo - Main::CommandNames - consider making these STRING params, and then this could be end-user configurable (good idea!)
@todo Main::CommandNames - provide for command aliases.
@todo Document clearly the distinction between running service and driver
to control stop/start etc. Think through relationship between windows
approahc and unix approach
@todo Windoze implementation - supporting the richer set of control mechanism.
AT LEAST support --stop from command-line (currently broken - but you can use net stop or net start servicename;
@todo Support Pause/Continue
Long-Term TODO: