mirror of
https://github.com/NixOS/nix.git
synced 2025-04-15 13:47:34 +00:00
add isInterrupted() call and replace some checkInterrupt() occurrences
This commit is contained in:
parent
db297d3dda
commit
49f757c24a
@ -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);
|
||||
|
@ -26,6 +26,11 @@ static inline bool getInterrupted();
|
||||
*/
|
||||
void setInterruptThrown();
|
||||
|
||||
/**
|
||||
* @note Does nothing on Windows
|
||||
*/
|
||||
static inline bool isInterrupted();
|
||||
|
||||
/**
|
||||
* @note Does nothing on Windows
|
||||
*/
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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 */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user