mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-17 08:57:34 +00:00
Revert "Use gethostuuid() on Mac to identify hosts for LockFileManager"
Broke non-Mac builds. This reverts commit r241005. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241007 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d5c333b731
commit
cb936df2a9
@ -21,16 +21,6 @@
|
||||
#if LLVM_ON_UNIX
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(__APPLE__) && defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && (__MAC_OS_X_VERSION_MIN_REQUIRED > 1050)
|
||||
#define USE_OSX_GETHOSTUUID 1
|
||||
#else
|
||||
#define USE_OSX_GETHOSTUUID 0
|
||||
#endif
|
||||
|
||||
#if USE_OSX_GETHOSTUUID
|
||||
#include <uuid/uuid.h>
|
||||
#endif
|
||||
using namespace llvm;
|
||||
|
||||
/// \brief Attempt to read the lock file with the given name, if it exists.
|
||||
@ -66,43 +56,14 @@ LockFileManager::readLockFile(StringRef LockFileName) {
|
||||
return None;
|
||||
}
|
||||
|
||||
static std::error_code getHostID(SmallVectorImpl<char> &HostID) {
|
||||
HostID.clear();
|
||||
|
||||
#if USE_OSX_GETHOSTUUID
|
||||
// On OS X, use the more stable hardware UUID instead of hostname.
|
||||
struct timespec wait = {1, 0}; // 1 second.
|
||||
uuid_t uuid;
|
||||
if (gethostuuid(uuid, &wait) != 0)
|
||||
return std::error_code(errno, std::system_category());
|
||||
|
||||
uuid_string_t UUIDStr;
|
||||
uuid_unparse(uuid, UUIDStr);
|
||||
assert(strlen(UUIDStr) == 36);
|
||||
HostID.append(&UUIDStr[0], &UUIDStr[36]);
|
||||
|
||||
#elif LLVM_ON_UNIX
|
||||
char hostname[256];
|
||||
hostname[255] = 0;
|
||||
hostname[0] = 0;
|
||||
gethostname(hostname, 255);
|
||||
HostID = hostname;
|
||||
|
||||
#else
|
||||
HostID = "localhost";
|
||||
#endif
|
||||
|
||||
return std::error_code();
|
||||
}
|
||||
|
||||
bool LockFileManager::processStillExecuting(StringRef HostID, int PID) {
|
||||
bool LockFileManager::processStillExecuting(StringRef Hostname, int PID) {
|
||||
#if LLVM_ON_UNIX && !defined(__ANDROID__)
|
||||
SmallString<256> StoredHostID;
|
||||
if (getHostID(StoredHostID))
|
||||
return true; // Conservatively assume it's executing on error.
|
||||
|
||||
char MyHostname[256];
|
||||
MyHostname[255] = 0;
|
||||
MyHostname[0] = 0;
|
||||
gethostname(MyHostname, 255);
|
||||
// Check whether the process is dead. If so, we're done.
|
||||
if (StoredHostID == HostID && getsid(PID) == -1 && errno == ESRCH)
|
||||
if (MyHostname == Hostname && getsid(PID) == -1 && errno == ESRCH)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
@ -165,18 +126,17 @@ LockFileManager::LockFileManager(StringRef FileName)
|
||||
|
||||
// Write our process ID to our unique lock file.
|
||||
{
|
||||
SmallString<256> HostID;
|
||||
if (auto EC = getHostID(HostID)) {
|
||||
Error = EC;
|
||||
return;
|
||||
}
|
||||
|
||||
raw_fd_ostream Out(UniqueLockFileID, /*shouldClose=*/true);
|
||||
Out << HostID << ' ';
|
||||
|
||||
#if LLVM_ON_UNIX
|
||||
Out << getpid();
|
||||
// FIXME: move getpid() call into LLVM
|
||||
char hostname[256];
|
||||
hostname[255] = 0;
|
||||
hostname[0] = 0;
|
||||
gethostname(hostname, 255);
|
||||
Out << hostname << ' ' << getpid();
|
||||
#else
|
||||
Out << "1";
|
||||
Out << "localhost 1";
|
||||
#endif
|
||||
Out.close();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user