I'm looking at some legacy code in the form of a Windows service.

I've noticed that in their OnStop() method, they simply write to the event log, however there is no object clean-up or control of terminating any threads. There are 2 background threads which are started on startup of the service so I'm left wondering, does this service actually stop? And, if it does, are the threads closed down correctly? 

Is the stop method physically terminating the process or is it only a logical stop, which if left not implemented doesn't actually do anything?