25 lines
582 B
C++
25 lines
582 B
C++
/***
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: LSFromFdNonblocking.cpp
|
|
Date: 2022-4-4
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
namespace Aurora::Loop
|
|
{
|
|
template<typename T>
|
|
inline void IsSignaledFromNonblockingImpl(ILoopSourceEx *source, T * that, bool(T *::IsSignaledNonblocking)())
|
|
{
|
|
bool val {};
|
|
source->OnPresleep();
|
|
val = ((that).*(IsSignaledNonblocking))();
|
|
if (val)
|
|
{
|
|
val = this->OnTrigger(one);
|
|
}
|
|
source->OnFinishSleep();
|
|
return val;
|
|
}
|
|
} |