public bool await()
{
lock (mutex)
{
TimeSpan elapsed = new TimeSpan(0, 0, 5);
while (remaining > 0)
{
mutex.Wait(elapsed);
}
}
return true;
}