mirror of https://github.com/BOINC/boinc.git
MGR: Use code like get_client_mutex() to determine if client is running; KillClient() uses process name if we don't have pid.
svn path=/trunk/boinc/; revision=18316
This commit is contained in:
parent
0bf6ddb2fd
commit
5dc3068df8
|
@ -5137,3 +5137,12 @@ David 5 June 2009
|
||||||
|
|
||||||
sched/
|
sched/
|
||||||
sched_plan.cpp,h
|
sched_plan.cpp,h
|
||||||
|
|
||||||
|
Charlie 5 June 2009
|
||||||
|
- MGR: Use code like get_client_mutex() to determine if client is running.
|
||||||
|
New CBOINCClientManager::KillClient() uses process name to kill client
|
||||||
|
if we don't have a pid (Mac, Linux) or process HANDLE (Windows).
|
||||||
|
NOTE: Windows implmentation not yet finished.
|
||||||
|
|
||||||
|
clientgui/
|
||||||
|
BOINCClientManager.cpp, .h
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,71 +1,60 @@
|
||||||
// This file is part of BOINC.
|
// This file is part of BOINC.
|
||||||
// http://boinc.berkeley.edu
|
// http://boinc.berkeley.edu
|
||||||
// Copyright (C) 2008 University of California
|
// Copyright (C) 2008 University of California
|
||||||
//
|
//
|
||||||
// BOINC is free software; you can redistribute it and/or modify it
|
// BOINC is free software; you can redistribute it and/or modify it
|
||||||
// under the terms of the GNU Lesser General Public License
|
// under the terms of the GNU Lesser General Public License
|
||||||
// as published by the Free Software Foundation,
|
// as published by the Free Software Foundation,
|
||||||
// either version 3 of the License, or (at your option) any later version.
|
// either version 3 of the License, or (at your option) any later version.
|
||||||
//
|
//
|
||||||
// BOINC is distributed in the hope that it will be useful,
|
// BOINC is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
// See the GNU Lesser General Public License for more details.
|
// See the GNU Lesser General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Lesser General Public License
|
// You should have received a copy of the GNU Lesser General Public License
|
||||||
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
|
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#ifndef _BOINCCLIENTMANAGER_H_
|
#ifndef _BOINCCLIENTMANAGER_H_
|
||||||
#define _BOINCCLIENTMANAGER_H_
|
#define _BOINCCLIENTMANAGER_H_
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(__APPLE__)
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
||||||
#pragma interface "BOINCClientManager.cpp"
|
#pragma interface "BOINCClientManager.cpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class CBOINCClientManager : public wxObject
|
class CBOINCClientManager : public wxObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
CBOINCClientManager();
|
CBOINCClientManager();
|
||||||
~CBOINCClientManager();
|
~CBOINCClientManager();
|
||||||
|
|
||||||
bool AutoRestart();
|
bool AutoRestart();
|
||||||
|
|
||||||
bool IsSystemBooting();
|
bool IsSystemBooting();
|
||||||
int IsBOINCConfiguredAsDaemon();
|
int IsBOINCConfiguredAsDaemon();
|
||||||
|
|
||||||
void DisableBOINCStartedByManager() { m_bBOINCStartedByManager = false; };
|
void DisableBOINCStartedByManager() { m_bBOINCStartedByManager = false; };
|
||||||
void EnableBOINCStartedByManager() { m_bBOINCStartedByManager = true; };
|
void EnableBOINCStartedByManager() { m_bBOINCStartedByManager = true; };
|
||||||
bool WasBOINCStartedByManager() { return m_bBOINCStartedByManager; };
|
bool WasBOINCStartedByManager() { return m_bBOINCStartedByManager; };
|
||||||
|
|
||||||
bool IsBOINCCoreRunning();
|
bool IsBOINCCoreRunning();
|
||||||
bool StartupBOINCCore();
|
bool StartupBOINCCore();
|
||||||
void ShutdownBOINCCore();
|
void ShutdownBOINCCore();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
bool m_bBOINCStartedByManager;
|
||||||
bool m_bBOINCStartedByManager;
|
int m_lBOINCCoreProcessId;
|
||||||
int m_lBOINCCoreProcessId;
|
|
||||||
|
#ifdef __WXMSW__
|
||||||
#ifdef __WXMSW__
|
void KillClient(HANDLE processHandle);
|
||||||
PPERF_OBJECT_TYPE FirstObject( PPERF_DATA_BLOCK PerfData );
|
HANDLE m_hBOINCCoreProcess;
|
||||||
PPERF_OBJECT_TYPE NextObject( PPERF_OBJECT_TYPE PerfObj );
|
#else
|
||||||
PPERF_INSTANCE_DEFINITION FirstInstance( PPERF_OBJECT_TYPE PerfObj );
|
void KillClient(pid_t thePID);
|
||||||
PPERF_INSTANCE_DEFINITION NextInstance( PPERF_INSTANCE_DEFINITION PerfInst );
|
#endif
|
||||||
PPERF_COUNTER_DEFINITION FirstCounter( PPERF_OBJECT_TYPE PerfObj );
|
|
||||||
PPERF_COUNTER_DEFINITION NextCounter( PPERF_COUNTER_DEFINITION PerfCntr );
|
};
|
||||||
PPERF_COUNTER_BLOCK CounterBlock(PPERF_INSTANCE_DEFINITION PerfInst);
|
|
||||||
DWORD GetProcessID(LPCTSTR pProcessName);
|
|
||||||
|
#endif
|
||||||
bool ProcessExists(HANDLE* thePID);
|
|
||||||
HANDLE m_hBOINCCoreProcess;
|
|
||||||
#else
|
|
||||||
bool ProcessExists(pid_t* thePID);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue