From: <ric...@us...> - 2009-10-01 17:54:47
|
Revision: 1027 http://loki-lib.svn.sourceforge.net/loki-lib/?rev=1027&view=rev Author: rich_sposato Date: 2009-10-01 17:54:38 +0000 (Thu, 01 Oct 2009) Log Message: ----------- Replaced sleep with usleep. Modified Paths: -------------- trunk/src/LevelMutex.cpp Modified: trunk/src/LevelMutex.cpp =================================================================== --- trunk/src/LevelMutex.cpp 2009-09-29 19:02:43 UTC (rev 1026) +++ trunk/src/LevelMutex.cpp 2009-10-01 17:54:38 UTC (rev 1027) @@ -40,8 +40,11 @@ #if defined( COMPILER_ALLOWS_THREAD_LOCAL_STORAGE ) -#include <loki/LevelMutex.h> +#include "../include/loki/LevelMutex.h" +#if !defined( _MSC_VER ) + #include <unistd.h> // needed for usleep function. +#endif #include <algorithm> #include <cerrno> @@ -784,7 +787,9 @@ #if defined( _MSC_VER ) ::SleepEx( sleepTime, true ); #else - ::sleep( sleepTime ); + if ( 0 == sleepTime ) + sleepTime = 1; + ::usleep( sleepTime * 1000 ); #endif } @@ -911,29 +916,28 @@ // ---------------------------------------------------------------------------- -#if defined( _MSC_VER ) - SleepLevelMutex::SleepLevelMutex( unsigned int level ) : SpinLevelMutex( level ), - m_sleepTime( 1 ), - m_wakable( true ) + m_sleepTime( 1 ) +#if defined( _MSC_VER ) + , m_wakable( true ) +#endif { } // ---------------------------------------------------------------------------- -#else - SleepLevelMutex::SleepLevelMutex( unsigned int level, unsigned int sleepTime ) : SpinLevelMutex( level ), - m_sleepTime( sleepTime / 1000 ) + m_sleepTime( sleepTime ) +#if defined( _MSC_VER ) + , m_wakable( true ) +#endif { if ( 0 == m_sleepTime ) - m_sleepTime = 1; // Can't have a resolution less than 1 second. + m_sleepTime = 1; // Can't have a resolution less than 1 millisecond. } -#endif - // ---------------------------------------------------------------------------- SleepLevelMutex::~SleepLevelMutex( void ) @@ -953,7 +957,7 @@ #if defined( _MSC_VER ) ::SleepEx( m_sleepTime, m_wakable ); #else - ::sleep( m_sleepTime ); + ::usleep( m_sleepTime * 1000 ); #endif } return MutexErrors::Success; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |