add isInterrupted() call and replace some checkInterrupt() occurrences

This commit is contained in:
Philipp Otterbein 2025-04-11 22:34:15 +02:00 committed by Jörg Thalheim
parent db297d3dda
commit 49f757c24a
4 changed files with 24 additions and 18 deletions

View File

@ -187,11 +187,7 @@ S3Helper::FileTransferResult S3Helper::getObject(
});
request.SetContinueRequestHandler([](const Aws::Http::HttpRequest*) {
try {
checkInterrupt();
return true;
} catch(...) {}
return false;
return !isInterrupted();
});
FileTransferResult res;
@ -420,10 +416,9 @@ struct S3BinaryCacheStoreImpl : virtual S3BinaryCacheStoreConfig, public virtual
TransferStatus status = transferHandle->GetStatus();
while (status == TransferStatus::IN_PROGRESS || status == TransferStatus::NOT_STARTED) {
try {
checkInterrupt();
if (!isInterrupted()) {
context->wait();
} catch (...) {
} else {
transferHandle->Cancel();
transferHandle->WaitUntilFinished();
}
@ -454,11 +449,7 @@ struct S3BinaryCacheStoreImpl : virtual S3BinaryCacheStoreConfig, public virtual
});
request.SetContinueRequestHandler([](const Aws::Http::HttpRequest*) {
try {
checkInterrupt();
return true;
} catch(...) {}
return false;
return !isInterrupted();
});
request.SetContentType(mimeType);

View File

@ -26,6 +26,11 @@ static inline bool getInterrupted();
*/
void setInterruptThrown();
/**
* @note Does nothing on Windows
*/
static inline bool isInterrupted();
/**
* @note Does nothing on Windows
*/

View File

@ -85,17 +85,22 @@ static inline bool getInterrupted()
return unix::_isInterrupted;
}
static inline bool isInterrupted()
{
using namespace unix;
return _isInterrupted || (interruptCheck && interruptCheck());
}
/**
* Throw `Interrupted` exception if the process has been interrupted.
*
* Call this in long-running loops and between slow operations to terminate
* them as needed.
*/
void inline checkInterrupt()
inline void checkInterrupt()
{
using namespace unix;
if (_isInterrupted || (interruptCheck && interruptCheck()))
_interrupted();
if (isInterrupted())
unix::_interrupted();
}
/**

View File

@ -22,7 +22,12 @@ inline void setInterruptThrown()
/* Do nothing for now */
}
void inline checkInterrupt()
static inline bool isInterrupted()
{
/* Do nothing for now */
}
inline void checkInterrupt()
{
/* Do nothing for now */
}