serialize all memory card operations since mount operations hang if we're doing lsusb or reading USB mass storage descriptors in another thread

This commit is contained in:
Chris Danford
2004-10-09 08:16:48 +00:00
parent f8a8294588
commit bc39cb5079
5 changed files with 26 additions and 26 deletions
+12 -10
View File
@@ -215,16 +215,16 @@ void MemoryCardManager::LockCards( bool bLock )
m_pDriver->MountAndTestWrite(&m_Device[p], MEM_CARD_MOUNT_POINT[p]);
}
}
if( !bWasLocked && bLock )
m_pDriver->SetMountThreadState( MemoryCardDriver::detect_and_dont_mount );
else
if( !bLock )
{
m_pDriver->SetMountThreadState( MemoryCardDriver::detect_and_mount );
}
}
void MemoryCardManager::TryMountAllCards()
{
FOREACH_PlayerNumber( p )
FOREACH_EnabledPlayer( p )
{
if( m_Device[p].IsBlank() ) // they don't have an assigned card
continue;
@@ -235,12 +235,12 @@ void MemoryCardManager::TryMountAllCards()
void MemoryCardManager::MountAllUsedCards()
{
FOREACH_PlayerNumber( p )
FOREACH_EnabledPlayer( p )
{
if( m_Device[p].IsBlank() ) // they don't have an assigned card
continue;
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded )
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded || !PROFILEMAN->ProfileWasLoadedFromMemoryCard(p) )
continue;
m_pDriver->MountAndTestWrite(&m_Device[p], MEM_CARD_MOUNT_POINT[p]);
@@ -249,12 +249,12 @@ void MemoryCardManager::MountAllUsedCards()
void MemoryCardManager::UnmountAllUsedCards()
{
FOREACH_PlayerNumber( p )
FOREACH_EnabledPlayer( p )
{
if( m_Device[p].IsBlank() ) // they don't have an assigned card
continue;
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded )
if( m_bTooLate[p] || !m_Device[p].bWriteTestSucceeded || !PROFILEMAN->ProfileWasLoadedFromMemoryCard(p) )
continue;
m_pDriver->Unmount(&m_Device[p], MEM_CARD_MOUNT_POINT[p]);
@@ -317,9 +317,11 @@ void MemoryCardManager::UnPauseMountingThread()
bool IsAnyPlayerUsingMemoryCard()
{
FOREACH_HumanPlayer( pn )
{
if( MEMCARDMAN->GetCardState(pn) == MEMORY_CARD_STATE_READY )
return true;
return false;
}
return false;
}
#include "LuaFunctions.h"