diff --git "a/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\344\272\224\357\274\211.md" "b/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\344\272\224\357\274\211.md" index 90d80080c3fc4146fbee1eb837f4f807f3019a5f..dd3d9475e731e8190caa5d3f96880e02021504c4 100644 --- "a/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\344\272\224\357\274\211.md" +++ "b/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\344\272\224\357\274\211.md" @@ -32,6 +32,8 @@ long PHPCoroutine::create(zend_fcall_info_cache *fci_cache, uint32_t argc, zval php_coro_args.fci_cache = fci_cache; php_coro_args.argv = argv; php_coro_args.argc = argc; + + return 0; // 这里本应该是返回创建的协程id,但是我们还没有到这一步,所以先返回0 } ``` @@ -124,6 +126,20 @@ php_coro_task* PHPCoroutine::get_task() (限于文章篇幅原因,我打算开其他文章来讲解`get_task`的实现。) +然后,我们在`PHPCoroutine::create`中调用`save_task`: + +```cpp +long PHPCoroutine::create(zend_fcall_info_cache *fci_cache, uint32_t argc, zval *argv) +{ + php_coro_args php_coro_args; + php_coro_args.fci_cache = fci_cache; + php_coro_args.argv = argv; + php_coro_args.argc = argc; + save_task(get_task()); + return 0; +} +``` + 最后,我们在创建协程的接口里面调用`Study::PHPCoroutine::create`即可: ```cpp diff --git "a/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\345\205\255\357\274\211.md" "b/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\345\205\255\357\274\211.md" index fd832a9914623faa8e7bdc83e16adf25ff7f383a..05223199ee92036a57ee7f2fb7b40816d66009ef 100644 --- "a/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\345\205\255\357\274\211.md" +++ "b/docs/\343\200\212PHP\346\211\251\345\261\225\345\274\200\345\217\221\343\200\213-\345\215\217\347\250\213-\345\215\217\347\250\213\345\210\233\345\273\272\357\274\210\345\205\255\357\274\211.md" @@ -104,7 +104,4 @@ protected: void *task = nullptr; ``` -这样,我们就实现了保存`PHP`协程栈的功能。 - - - +这样,我们就实现了保存`PHP`协程栈的功能。 \ No newline at end of file