| 1938 | |
| 1939 | |
| 1940 | THREAD_ENTRY_DECLARE Service::run(THREAD_ENTRY_PARAM arg) |
| 1941 | { |
| 1942 | int exit_code = -1; |
| 1943 | try |
| 1944 | { |
| 1945 | Service* svc = (Service*)arg; |
| 1946 | RefPtr<SvcMutex> ref(svc->svc_existence); |
| 1947 | exit_code = svc->svc_service_run->serv_thd(svc); |
| 1948 | |
| 1949 | Thread svcThread(std::move(svc->svc_thread)); |
| 1950 | |
| 1951 | svc->started(); |
| 1952 | svc->unblockQueryGet(); |
| 1953 | svc->finish(SVC_finished); |
| 1954 | |
| 1955 | threadCollect->ending(std::move(svcThread)); |
| 1956 | } |
| 1957 | catch (const Exception& ex) |
| 1958 | { |
| 1959 | // Not much we can do here |
| 1960 | exit_code = -1; |
| 1961 | iscLogException("Exception in Service::run():", ex); |
| 1962 | } |
| 1963 | |
| 1964 | return (THREAD_ENTRY_RETURN)(IPTR) exit_code; |
| 1965 | } |
| 1966 | |
| 1967 | |
| 1968 | void Service::start(USHORT spb_length, const UCHAR* spb_data) |
no test coverage detected