mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 01:24:30 +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:
@ -21,16 +21,6 @@
|
|||||||
#if LLVM_ON_UNIX
|
#if LLVM_ON_UNIX
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#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;
|
using namespace llvm;
|
||||||
|
|
||||||
/// \brief Attempt to read the lock file with the given name, if it exists.
|
/// \brief Attempt to read the lock file with the given name, if it exists.
|
||||||
@ -66,43 +56,14 @@ LockFileManager::readLockFile(StringRef LockFileName) {
|
|||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::error_code getHostID(SmallVectorImpl<char> &HostID) {
|
bool LockFileManager::processStillExecuting(StringRef Hostname, int PID) {
|
||||||
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) {
|
|
||||||
#if LLVM_ON_UNIX && !defined(__ANDROID__)
|
#if LLVM_ON_UNIX && !defined(__ANDROID__)
|
||||||
SmallString<256> StoredHostID;
|
char MyHostname[256];
|
||||||
if (getHostID(StoredHostID))
|
MyHostname[255] = 0;
|
||||||
return true; // Conservatively assume it's executing on error.
|
MyHostname[0] = 0;
|
||||||
|
gethostname(MyHostname, 255);
|
||||||
// Check whether the process is dead. If so, we're done.
|
// 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;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -165,18 +126,17 @@ LockFileManager::LockFileManager(StringRef FileName)
|
|||||||
|
|
||||||
// Write our process ID to our unique lock file.
|
// 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);
|
raw_fd_ostream Out(UniqueLockFileID, /*shouldClose=*/true);
|
||||||
Out << HostID << ' ';
|
|
||||||
#if LLVM_ON_UNIX
|
#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
|
#else
|
||||||
Out << "1";
|
Out << "localhost 1";
|
||||||
#endif
|
#endif
|
||||||
Out.close();
|
Out.close();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user