Mercurial > foo_out_sdl
comparison foosdk/sdk/foobar2000/SDK/abort_callback.cpp @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #include "foobar2000-sdk-pch.h" | |
| 2 | |
| 3 #include "abort_callback.h" | |
| 4 | |
| 5 void abort_callback::check() const { | |
| 6 if (is_aborting()) { | |
| 7 throw exception_aborted(); | |
| 8 } | |
| 9 } | |
| 10 | |
| 11 void abort_callback::sleep(double p_timeout_seconds) const { | |
| 12 if (!sleep_ex(p_timeout_seconds)) { | |
| 13 throw exception_aborted(); | |
| 14 } | |
| 15 } | |
| 16 | |
| 17 bool abort_callback::sleep_ex(double p_timeout_seconds) const { | |
| 18 // return true IF NOT SET (timeout), false if set | |
| 19 return !pfc::event::g_wait_for(get_abort_event(),p_timeout_seconds); | |
| 20 } | |
| 21 | |
| 22 bool abort_callback::waitForEvent( pfc::eventHandle_t evtHandle, double timeOut ) const { | |
| 23 int status = pfc::event::g_twoEventWait( this->get_abort_event(), evtHandle, timeOut ); | |
| 24 switch(status) { | |
| 25 case 1: throw exception_aborted(); | |
| 26 case 2: return true; | |
| 27 case 0: return false; | |
| 28 default: uBugCheck(); | |
| 29 } | |
| 30 } | |
| 31 | |
| 32 bool abort_callback_usehandle::is_aborting() const { | |
| 33 return pfc::event::g_wait_for( get_abort_event(), 0 ); | |
| 34 } | |
| 35 | |
| 36 bool abort_callback::waitForEvent(pfc::event& evt, double timeOut) const { | |
| 37 return waitForEvent(evt.get_handle(), timeOut); | |
| 38 } | |
| 39 | |
| 40 void abort_callback::waitForEvent(pfc::eventHandle_t evtHandle) const { | |
| 41 bool status = waitForEvent(evtHandle, -1); (void)status; | |
| 42 PFC_ASSERT(status); // should never return false | |
| 43 } | |
| 44 | |
| 45 void abort_callback::waitForEvent(pfc::event& evt) const { | |
| 46 bool status = waitForEvent(evt, -1); (void)status; | |
| 47 PFC_ASSERT(status); // should never return false | |
| 48 } | |
| 49 | |
| 50 bool abort_callback::waitForEventNoThrow(pfc::eventHandle_t evtHandle) const { | |
| 51 int status = pfc::event::g_twoEventWait(this->get_abort_event(), evtHandle, -1); | |
| 52 switch (status) { | |
| 53 case 1: return false; | |
| 54 case 2: return true; | |
| 55 default: uBugCheck(); | |
| 56 } | |
| 57 } | |
| 58 | |
| 59 bool abort_callback::waitForEventNoThrow(pfc::event& evt) const { | |
| 60 return waitForEventNoThrow(evt.get_handle()); | |
| 61 } | |
| 62 | |
| 63 namespace fb2k { | |
| 64 abort_callback_dummy noAbort; | |
| 65 } | |
| 66 | |
| 67 abort_callback_event abort_callback_clone::clone(abort_callback_event arg) { | |
| 68 return pfc::fileHandleDup(arg); | |
| 69 } | |
| 70 | |
| 71 void abort_callback_clone::close(abort_callback_event arg) { | |
| 72 return pfc::fileHandleClose(arg); | |
| 73 } | |
| 74 |
