internal bool AcquireLock()
{
Retry:
var lockingObject = Table<LockingObject>().FirstOrDefault();
if (lockingObject == null)
{
lockingObject = new LockingObject() { Id = 0, LockTime = DateTime.UtcNow };
try
{
Insert(lockingObject);
return true;
}
catch
{
goto Retry;
}
}
lockingObject.LockTime = DateTime.UtcNow;
try
{
Update(lockingObject);
return true;
}
catch
{
return false;
}
}