Browse Source

Merge pull request #639 from eesast/dev

fix locking
tags/v0.1.0
DragonAura GitHub 2 years ago
parent
commit
ddf0bf495e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 20 deletions
  1. +4
    -20
      logic/Gaming/ActionManager.cs

+ 4
- 20
logic/Gaming/ActionManager.cs View File

@@ -106,11 +106,7 @@ namespace Gaming
gameMap.AddNumOfRepairedGenerators(); gameMap.AddNumOfRepairedGenerators();
if (generatorForFix.DegreeOfRepair == GameData.degreeOfFixedGenerator) if (generatorForFix.DegreeOfRepair == GameData.degreeOfFixedGenerator)
{ {
lock (player.ActionLock)
{
if (stateNum == player.StateNum)
player.SetPlayerState(RunningStateType.Null);
}
player.ResetPlayerState(stateNum);
return false; return false;
} }
return true; return true;
@@ -211,11 +207,7 @@ namespace Gaming
long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Treating); long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Treating);
if (stateNum == -1) if (stateNum == -1)
{ {
lock (playerTreated.ActionLock)
{
if (playerTreated.StateNum == stateNumTreated)
player.SetPlayerStateNaturally();
}
playerTreated.ResetPlayerState(stateNumTreated);
return false; return false;
} }


@@ -227,11 +219,7 @@ namespace Gaming
if (!player.StartThread(stateNum, RunningStateType.RunningActively)) if (!player.StartThread(stateNum, RunningStateType.RunningActively))
{ {
player.ThreadNum.Release(); player.ThreadNum.Release();
lock (playerTreated.ActionLock)
{
if (playerTreated.StateNum == stateNumTreated)
playerTreated.SetPlayerStateNaturally();
}
playerTreated.ResetPlayerState(stateNumTreated);
return; return;
} }


@@ -239,11 +227,7 @@ namespace Gaming
if (!playerTreated.StartThread(stateNum, RunningStateType.RunningActively)) if (!playerTreated.StartThread(stateNum, RunningStateType.RunningActively))
{ {
playerTreated.ThreadNum.Release(); playerTreated.ThreadNum.Release();
lock (player.ActionLock)
{
if (player.StateNum == stateNum)
player.SetPlayerStateNaturally();
}
player.ResetPlayerState(stateNum);
player.ThreadNum.Release(); player.ThreadNum.Release();
return; return;
} }


Loading…
Cancel
Save