async_simple icon indicating copy to clipboard operation
async_simple copied to clipboard

Add More Platform Support For Uthread

Open RainMark opened this issue 3 years ago • 10 comments

Search before asking

  • [ ] I searched the issues and found no similar issues.

What happened + What you expected to happen

the low level context switch of uthread came from boost.context。 uthread only support x86_64 and arm currently, we can add more platform support with boost.context

Are you willing to submit a PR?

  • [ ] Yes I am willing to submit a PR!

RainMark avatar Mar 03 '22 03:03 RainMark

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

4kangjc avatar Oct 25 '22 09:10 4kangjc

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

RainMark avatar Oct 25 '22 10:10 RainMark

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

4kangjc avatar Oct 25 '22 10:10 4kangjc

尝试了一下https://github.com/4kangjc/async_simple/tree/more_platform_uthread

4kangjc avatar Oct 25 '22 11:10 4kangjc

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

嗯,看看在虚拟机里能不能测测看,pr你可以先提着

RainMark avatar Oct 25 '22 12:10 RainMark

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

嗯,看看在虚拟机里能不能测测看,pr你可以先提着

我试一下

4kangjc avatar Oct 25 '22 13:10 4kangjc

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

嗯,看看在虚拟机里能不能测测看,pr你可以先提着

我试一下

更新一下进展吧,用qemu模拟了一下ppc64_le架构 参考 alpine linux on qemu ppc64le on x86_64: QEMU full-system emulation 目前编译通过 Screenshot_20221026_151020 但是跑async_simple_uthread_testtestSwitch出项段错误,testSwitch finish是我加到while后面的代码 Screenshot_20221026_145338 gdb下core在了testScheduleInTwoThread Screenshot_20221026_150134

4kangjc avatar Oct 26 '22 07:10 4kangjc

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

嗯,看看在虚拟机里能不能测测看,pr你可以先提着

我试一下

更新一下进展吧,用qemu模拟了一下ppc64_le架构 参考 alpine linux on qemu ppc64le on x86_64: QEMU full-system emulation 目前编译通过 Screenshot_20221026_151020 但是跑async_simple_uthread_testtestSwitch出项段错误,testSwitch finish是我加到while后面的代码 Screenshot_20221026_145338 gdb下core在了testScheduleInTwoThread Screenshot_20221026_150134

最基本的换入换出能力还是有的

4kangjc avatar Oct 26 '22 09:10 4kangjc

Screenshot_20221026_175539

4kangjc avatar Oct 26 '22 09:10 4kangjc

看起来这个很简单,从boost上把代码扒下来,然后改个名字,在CMakeLists里加一下就可以里,准备再添加其他什么平台呢?

是的,主要是可能需要在新加入的平台也做些测试,你感兴趣的话愿意搞一下吗?

没有其他平台的机器,不太好测试哇

嗯,看看在虚拟机里能不能测测看,pr你可以先提着

我试一下

更新一下进展吧,用qemu模拟了一下ppc64_le架构 参考 alpine linux on qemu ppc64le on x86_64: QEMU full-system emulation 目前编译通过 Screenshot_20221026_151020 但是跑async_simple_uthread_testtestSwitch出项段错误,testSwitch finish是我加到while后面的代码 Screenshot_20221026_145338 gdb下core在了testScheduleInTwoThread Screenshot_20221026_150134

最基本的换入换出能力还是有的

I just add sleep 1 after while (running) {}, and then passed all tests,我再看看代码

4kangjc avatar Oct 28 '22 13:10 4kangjc