@@ -62,7 +62,7 @@ namespace YY
6262 private:
6363 CoroutineReadWriteTask (bool )
6464 {
65- hCoroutineHandle = -1 ;
65+ oCoroutineInfo. hCoroutineHandle = -1 ;
6666 lStatus = ERROR_OUTOFMEMORY;
6767 }
6868
@@ -71,13 +71,7 @@ namespace YY
7171
7272 HRESULT __YYAPI RunTask () override
7373 {
74- auto _hHandle = (void *)YY::Base::Sync::Exchange (&hCoroutineHandle, /* hReadyHandle*/ (intptr_t )-1 );
75- if (_hHandle)
76- {
77- std::coroutine_handle<>::from_address (_hHandle).resume ();
78- }
79-
80- return S_OK;
74+ return Resume ();
8175 }
8276
8377 uint32_t __YYAPI AddRef () noexcept override
@@ -90,7 +84,7 @@ namespace YY
9084 return IoTaskEntry::Release ();
9185 }
9286
93- uint32_t __YYAPI Resume () noexcept override
87+ uint32_t __YYAPI GetResult () noexcept override
9488 {
9589 SetLastError (lStatus);
9690 return uint32_t (InternalHigh);
@@ -263,7 +257,7 @@ namespace YY
263257 if (_lStatus != ERROR_SUCCESS)
264258 {
265259 // 失败时,异步任务不会在触发了。也算是一种任务完成。
266- _pAsyncTaskEntry->hCoroutineHandle = - 1 ;
260+ _pAsyncTaskEntry->Resume () ;
267261 }
268262 }
269263 else
@@ -297,7 +291,7 @@ namespace YY
297291 if (_lStatus != ERROR_SUCCESS)
298292 {
299293 // 失败时,异步任务不会在触发了。也算是一种任务完成。
300- _pAsyncTaskEntry->hCoroutineHandle = - 1 ;
294+ _pAsyncTaskEntry->Resume () ;
301295 }
302296 }
303297 else
@@ -513,7 +507,7 @@ namespace YY
513507 private:
514508 CoroutineConnectTask (bool )
515509 {
516- hCoroutineHandle = -1 ;
510+ oCoroutineInfo. hCoroutineHandle = -1 ;
517511 lStatus = ERROR_OUTOFMEMORY;
518512 }
519513
@@ -522,13 +516,7 @@ namespace YY
522516
523517 HRESULT __YYAPI RunTask () override
524518 {
525- auto _hHandle = (void *)YY::Base::Sync::Exchange (&hCoroutineHandle, /* hReadyHandle*/ (intptr_t )-1 );
526- if (_hHandle)
527- {
528- std::coroutine_handle<>::from_address (_hHandle).resume ();
529- }
530-
531- return S_OK;
519+ return Resume ();
532520 }
533521
534522 uint32_t __YYAPI AddRef () noexcept override
@@ -541,7 +529,7 @@ namespace YY
541529 return IoTaskEntry::Release ();
542530 }
543531
544- LSTATUS __YYAPI Resume () noexcept override
532+ LSTATUS __YYAPI GetResult () noexcept override
545533 {
546534 return lStatus;
547535 }
@@ -559,7 +547,7 @@ namespace YY
559547 auto _lStatus = AsyncConnectIntetnal (_pConnectTask);
560548 if (_lStatus != ERROR_SUCCESS)
561549 {
562- _pConnectTask->hCoroutineHandle = - 1 ;
550+ _pConnectTask->Resume () ;
563551 }
564552 }
565553 else
0 commit comments