mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Bug #691
- Fixed bug #691, which was a mis-reporting of file lock state even when file locking was turned off (thanks to Tom Duffy).
This commit is contained in:
parent
63308441ec
commit
7986227ea2
4 changed files with 13 additions and 8 deletions
2
AUTHORS
2
AUTHORS
|
@ -98,4 +98,4 @@ suggestions:
|
||||||
Andreas Kalex
|
Andreas Kalex
|
||||||
Adam Wolk
|
Adam Wolk
|
||||||
Wim Schuermann
|
Wim Schuermann
|
||||||
|
Tom Duffy
|
||||||
|
|
|
@ -83,6 +83,8 @@
|
||||||
certain circumstances (thanks to Steve Rader).
|
certain circumstances (thanks to Steve Rader).
|
||||||
+ Fixed bug #645 & #660, which prevented logically combining report filters
|
+ Fixed bug #645 & #660, which prevented logically combining report filters
|
||||||
(thanks to Bryce Harrington).
|
(thanks to Bryce Harrington).
|
||||||
|
+ Fixed bug #691, which was a mis-reporting of file lock state even when file
|
||||||
|
locking was turned off (thanks to Tom Duffy).
|
||||||
+ Fixed bug #696, where the command line parser was confused by a single '-'
|
+ Fixed bug #696, where the command line parser was confused by a single '-'
|
||||||
or '+' character.
|
or '+' character.
|
||||||
+ Fixed bug #699, truncated ssh://... during autopush after merge.
|
+ Fixed bug #699, truncated ssh://... during autopush after merge.
|
||||||
|
|
|
@ -1597,8 +1597,9 @@ FILE* TDB::openAndLock (const std::string& file)
|
||||||
throw std::string ("Could not open '") + file + "'.";
|
throw std::string ("Could not open '") + file + "'.";
|
||||||
|
|
||||||
// Lock if desired. Try three times before failing.
|
// Lock if desired. Try three times before failing.
|
||||||
int retry = 0;
|
|
||||||
if (mLock)
|
if (mLock)
|
||||||
|
{
|
||||||
|
int retry = 0;
|
||||||
while (flock (fileno (in), LOCK_NB | LOCK_EX) && ++retry <= 3)
|
while (flock (fileno (in), LOCK_NB | LOCK_EX) && ++retry <= 3)
|
||||||
{
|
{
|
||||||
std::cout << "Waiting for file lock...\n";
|
std::cout << "Waiting for file lock...\n";
|
||||||
|
@ -1606,8 +1607,9 @@ FILE* TDB::openAndLock (const std::string& file)
|
||||||
delay (0.2);
|
delay (0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retry > 3)
|
if (retry > 3)
|
||||||
throw std::string ("Could not lock '") + file + "'.";
|
throw std::string ("Could not lock '") + file + "'.";
|
||||||
|
}
|
||||||
|
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
|
|
@ -442,7 +442,6 @@ void TDB::lock (bool lockFile /* = true */)
|
||||||
mCompleted.clear ();
|
mCompleted.clear ();
|
||||||
mModified.clear ();
|
mModified.clear ();
|
||||||
|
|
||||||
|
|
||||||
foreach (location, mLocations)
|
foreach (location, mLocations)
|
||||||
{
|
{
|
||||||
location->pending = openAndLock (location->path + "/pending.data");
|
location->pending = openAndLock (location->path + "/pending.data");
|
||||||
|
@ -1836,8 +1835,9 @@ FILE* TDB::openAndLock (const std::string& file)
|
||||||
throw std::string ("Could not open '") + file + "'.";
|
throw std::string ("Could not open '") + file + "'.";
|
||||||
|
|
||||||
// Lock if desired. Try three times before failing.
|
// Lock if desired. Try three times before failing.
|
||||||
int retry = 0;
|
|
||||||
if (mLock)
|
if (mLock)
|
||||||
|
{
|
||||||
|
int retry = 0;
|
||||||
while (flock (fileno (in), LOCK_NB | LOCK_EX) && ++retry <= 3)
|
while (flock (fileno (in), LOCK_NB | LOCK_EX) && ++retry <= 3)
|
||||||
{
|
{
|
||||||
std::cout << "Waiting for file lock...\n";
|
std::cout << "Waiting for file lock...\n";
|
||||||
|
@ -1845,8 +1845,9 @@ FILE* TDB::openAndLock (const std::string& file)
|
||||||
delay (0.2);
|
delay (0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retry > 3)
|
if (retry > 3)
|
||||||
throw std::string ("Could not lock '") + file + "'.";
|
throw std::string ("Could not lock '") + file + "'.";
|
||||||
|
}
|
||||||
|
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue