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: