From a259a536ee561c992d971db240c9cc8a7b7aa74d Mon Sep 17 00:00:00 2001 From: Jesse Gilles Date: Tue, 21 Apr 2015 10:38:00 -0500 Subject: MTS_IO_Lockfile.cpp: check lock file write result --- src/MTS_IO_LockFile.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/MTS_IO_LockFile.cpp b/src/MTS_IO_LockFile.cpp index c013699..a4879de 100644 --- a/src/MTS_IO_LockFile.cpp +++ b/src/MTS_IO_LockFile.cpp @@ -84,10 +84,22 @@ bool LockFile::lock(uint32_t attemptMillis) { // Mgetty treats 4-bytes lock files as binary, // not text, PID. Making 5+ char file. Brrr... char buf[256] = {0}; + size_t written = 0; + sprintf(buf, "%4d\n", getpid()); - write(m_iLockFd, buf, strlen(buf)); - close(m_iLockFd); - return true; + size_t wsize = strlen(buf); + + written = write(m_iLockFd, buf, wsize); + + if (wsize != written) { + printError("LockFile| Error writing to lock file [%s] [%d][%s]", m_sFile.c_str(), errno, strerror(errno)); + close(m_iLockFd); + return false; + } + else { + close(m_iLockFd); + return true; + } } uint32_t randomSleepTime = ((rand() % 10) + 1) * 100000; //Sleep from 100ms to 1 Second ::usleep(randomSleepTime); -- cgit v1.2.3